我试图使用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
作为参数,它将提供前缀的完整列表。