dask.submit:调度程序中的内存/负载分配不足

问题描述 投票:0回答:1

运行良好的dask服务器:

enter image description here

比起我开始使用publish_dataset预填充有关工作人员的一些数据,看起来分配的内存还不错:

running_dask_clister

接下来,我循环调用futures.append(client.submit(fn, values)),然后调用client.gather(futures)-可以!但这并没有想象的那么快,因为大多数计算/内存负载集中在2个单个进程上(worker4和worker 1):

bad_load_memory_allocation_dask_distributed

问题:

  1. 为什么Dask这样做?
  2. 是否可以在特定作品上预加载数据,而不是submit to the specific workers
  3. 我应该以某种方式在工作线程之间重新分配已使用的内存以实现更好的并行化吗?

相关:submit Dask Worker StealingRegister Worker callbacks

memory-management parallel-processing dask dask-distributed
1个回答
0
投票

为什么Dask这样做?

不幸的是,我对您的问题了解不多,所以不知道达斯克为什么选择做自己正在做的事情。

是否可以预先加载特定作品的数据,然后提交给特定工人?

是。参见Dask Actors per workerworkers=]的scatter关键字

我应该以某种方式在工作线程之间重新分配已使用的内存以实现更好的并行化吗?

Dask应该为您处理。我建议使用散点而不是publish_dataset,它不会做您认为的工作(我建议查看每种方法的文档字符串)

© www.soinside.com 2019 - 2024. All rights reserved.