【问题标题】:Do I need to initialize the client when using Dask locally?在本地使用 Dask 时需要初始化客户端吗?
【发布时间】:2020-04-25 10:36:30
【问题描述】:

我浏览了 Dask 教程,它们总是从客户端的初始化开始:

from dask.distributed import Client

client = Client(n_workers=4)

我最感兴趣的是使用 Dask 的 read_csv 函数在我的笔记本电脑上并行读取 DataFrame。

import dask.dataframe as dd
df = dd.read_csv('trainset.csv').compute()

尽管设置了 n_workers=4,但 Dask 在读取 csv 时会使用所有内核。是否初始化Client都是一样的。当我在本地使用 Dask 并且仅用于读取文件时,我什至需要初始化客户端吗?是用 Dask 隐式初始化的吗?

【问题讨论】:

    标签: python dask dask-dataframe


    【解决方案1】:

    Dask 的默认调度程序是简单的“线程”调度程序,它不能在多台机器上运行。但是,如果您创建一个分布式client,那么它将成为默认值——即使它是仅在一台机器上运行的“本地”客户端。这是因为线程调度器来得更早并且已经是默认的了,也因为安装分布式需要很多额外的依赖,比如tornado。在某些有限的情况下,线程调度器也可以更快,因为它更简单,但分布式调度器具有更多功能和诊断,因此通常推荐用于所有目的。

    较旧的单机调度程序:https://docs.dask.org/en/latest/setup/single-machine.html

    分布式调度器,也可以单机使用:https://docs.dask.org/en/latest/setup/single-distributed.html

    【讨论】:

    • 那么如果我理解正确的话我在单机工作时不需要初始化客户端?
    • 这取决于您 - 添加了包含更多信息的链接以帮助您选择。
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2020-02-22
    • 1970-01-01
    相关资源
    最近更新 更多