gpt4 book ai didi

python - dask 使用 delayed 构造函数列表,但指定要使用的进程数

转载 作者:行者123 更新时间:2023-11-28 22:30:16 27 4
gpt4 key购买 nike

我有一个计算函数,这里有一个简单的例子,

def add(a,b):
return a+b

然后我以令人尴尬的并行方式执行此函数 100 次,

output = [delayed(add)(i,i+1) for i in range(100)]
compute(*output)

我的问题是上面的代码会启动100个进程吗?如果是这样,有没有办法让它启动 10 个进程,从而减少启动进程的时间?

最佳答案

dask delayed 的默认 get 是一个线程池,线程数与内核数一样多。

您可以使用不同的get(而不是线程式的)以及通过compute 指定get 参数。要使用具有 10 个线程的线程池,您可以执行 dask.compute(*output, num_workers=10)。要对 10 个工作线程使用基于 multiprocessing 模块的 get,您可以执行 dask.compute(*output, get=dask.multiprocessing.get, num_workers=10)。 (请注意,dask.multiprocessing 所基于的 multiprocessing 模块并不是 stdlib 中最大的 gem。Dask 的使用可能很少见,如果你在一个非常简单的环境中使用它,它应该主要工作方式,但如果我需要与 dask 的基于进程的并行性,我会很快使用 Distributed ,即使在单个主机上也是如此。)

关于python - dask 使用 delayed 构造函数列表,但指定要使用的进程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com