Python 3.x 理解Dask';s任务流

Python 3.x 理解Dask';s任务流,python-3.x,dask,Python 3.x,Dask,我在本地运行dask,在我的机器上使用分布式调度程序,有8个内核。在初始化时,我看到: 这看起来是正确的,但我对诊断中的任务流感到困惑(如下所示): 我期望8行对应于8个工人/核心,这是错误的吗 谢谢 AJ 我已经添加了我正在运行的代码: import dask.dataframe as dd from dask.distributed import Client, progress client = Client() progress(client) # load datasets tr

我在本地运行dask,在我的机器上使用分布式调度程序,有8个内核。在初始化时,我看到:

这看起来是正确的,但我对诊断中的任务流感到困惑(如下所示):

我期望8行对应于8个工人/核心,这是错误的吗

谢谢

AJ

我已经添加了我正在运行的代码:

import dask.dataframe as dd
from dask.distributed import Client, progress
client = Client()
progress(client)

# load datasets
trd = (dd.read_csv('trade_201811*.csv', compression='gzip',  
                    blocksize=None, dtype={'Notional': 'float64'})
         .assign(timestamp=lambda x: dd.to_datetime(x.timestamp.str.replace('D', 'T')))
         .set_index('timestamp', sorted=True))

每行对应一个线程。一些更复杂的Dask操作将启动额外的线程,这在任务启动其他任务时尤其发生,这在机器学习工作负载中尤其常见

我猜您正在使用以下方法之一:

  • dask.distributed.get_client
    dask.distributed.worker_client
  • Scikit学习作业库
  • 达斯克毫升

如果是这样,你看到的行为是正常的。任务流图看起来有点奇怪,是的,但希望它仍然是可解释的。

好的,这是有意义的,尽管我在一台有8个工作线程的8核机器上运行,我只是假设任何子任务/procs/线程都会出现在现有的8行中的一行上。