dask:指定进程数
dask: specify number of processes
我正在尝试使用 dask 进行一些令人尴尬的并行处理。由于某些原因,我必须使用 dask,但可以使用 multiprocessing.Pool(5).map
.
轻松完成任务
例如:
import dask
from dask import compute, delayed
def do_something(x): return x * x
data = range(10)
delayed_values = [delayed(do_something)(x) for x in data]
results = compute(*delayed_values, scheduler='processes')
它有效,但显然它只使用一个进程。
我如何配置 dask 以便它使用 5 个进程的池来进行此计算?
您可以将其配置为使用自定义进程池:
import dask
from multiprocessing.pool import Pool
dask.config.set(pool=Pool(5))
或作为上下文管理器:
with dask.config.set(scheduler='processes', num_workers=5):
...
您可能想阅读这篇文章dask_scheduling
或者我之前的
您可以使用num_workers
参数指定compute
方法的进程数。
results = compute(*delayed_values, scheduler='processes', num_workers=5)
我正在尝试使用 dask 进行一些令人尴尬的并行处理。由于某些原因,我必须使用 dask,但可以使用 multiprocessing.Pool(5).map
.
例如:
import dask
from dask import compute, delayed
def do_something(x): return x * x
data = range(10)
delayed_values = [delayed(do_something)(x) for x in data]
results = compute(*delayed_values, scheduler='processes')
它有效,但显然它只使用一个进程。
我如何配置 dask 以便它使用 5 个进程的池来进行此计算?
您可以将其配置为使用自定义进程池:
import dask
from multiprocessing.pool import Pool
dask.config.set(pool=Pool(5))
或作为上下文管理器:
with dask.config.set(scheduler='processes', num_workers=5):
...
您可能想阅读这篇文章dask_scheduling
或者我之前的
您可以使用num_workers
参数指定compute
方法的进程数。
results = compute(*delayed_values, scheduler='processes', num_workers=5)