小编Sam*_*our的帖子

在 dask 产生的进程中调用 dask

我们有一个包含众多任务的大型项目。我们使用 dask 图来安排每个任务。该图的一个小样本如下。请注意,dask 设置为多处理模式。

dask_graph:

  universe: !!python/tuple [gcsstrategies.svc.business_service.UniverseService.load_universe_object, CONTEXT]
  raw_market_data: !!python/tuple [gcsstrategies.svc.data_loading_service.RDWLoader.load_market_data, CONTEXT, universe]
  raw_fundamental_data: !!python/tuple [gcsstrategies.svc.data_loading_service.RDWLoader.load_fundamental_data, CONTEXT, universe]

dask_keys: [raw_fundamental_data]
Run Code Online (Sandbox Code Playgroud)

现在的任务之一,raw_fundamental_data懒洋洋地安排使用DASK任务,@delay并使用游dask.compute()。这种设计选择的原因是将raw_fundamental_data在运行时根据运行时参数动态选择由 dask inside 调度和延迟运行的任务列表。

我们看到的错误是:

守护进程不允许有子进程

我们理解这是因为生成的进程试图生成子进程。这个问题有什么解决办法吗?dask 是否有任何方法允许通过 daskgraph 安排的任务使用@delay或其他方法来安排和延迟运行自己的任务。

请注意,在我们的系统中,有许多任务将使用多处理运行自己的任务。所以顺序执行不是一种选择。

python multiprocessing dask

4
推荐指数
1
解决办法
661
查看次数

标签 统计

dask ×1

multiprocessing ×1

python ×1