在每个Dask worker上提交唯一的局部变量作为函数的参数

时间:2018-09-30 22:40:07

标签: python-3.x dask wine dask-distributed

我试图使用Dask Distributed从远程Linux服务器上托管的Jupyter Notebook运行一个令人尴尬的并行过程。我正在使用LocalCluster()来设置调度程序和工作程序。我试图运行的过程是一个自定义类方法,该方法包装了一个subprocess.run()调用,该调用使用WINE执行Windows命令行工具。为了帮助使这些进程彼此完全独立地运行,类方法接受一个wine_prefix参数,该参数将在wine_prefix调用中添加到该subprocess.run()的路径。

我想推送一个名为wine_prefix的本地变量,该变量对于每个工作程序都是唯一的,当该工作程序在该工作程序上被调用时,该工作程序将传递给该方法(即,集群中的每个工作程序都将使用WINE执行该过程在单独的酒服务器中)。我尝试使用client.scatter()方法分散wine_prefixes列表(例如client.scatter(['~/.wine-0', '~/.wine-1', ...], broadcast=False)),但是我不确定如何将wine_prefix参数提交给我的类方法m在每个工作程序上仅使用唯一的wine_prefix运行。如果我创建了一个dask.delayed函数,然后将其分布在整个集群中并指定wine_prefix作为参数,它将提供前缀的完整列表。

0 个答案:

没有答案