0

我浏览了 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 隐式初始化的吗?

4

1 回答 1

1

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

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

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

于 2020-04-27T12:28:28.997 回答