使用脚本中的 Dask

Der*_*Weh 1 python-3.x dask dask-distributed

是否可以dask从 python 脚本运行?

在交互式会话中,我可以只写

from dask.distributed import Client
client = Client()
Run Code Online (Sandbox Code Playgroud)

如所有教程中所述。但是,如果我将这些行写入script.py文件并执行它python script.py,它会立即崩溃。

我找到了另一个选项,就是使用 MPI:

# script.py
from dask_mpi import initialize
initialize()

from dask.distributed import Client
client = Client()  # Connect this local process to remote workers
Run Code Online (Sandbox Code Playgroud)

然后使用mpirun -n 4 python script.py. 这不会崩溃,但是如果您打印客户端

print(client)
# <Client: scheduler='tcp://137.250.37.84:35145' processes=0 cores=0> 
Run Code Online (Sandbox Code Playgroud)

你看到没有使用内核,因此脚本永远运行而不做任何事情。

如何正确设置我的脚本?

MRo*_*lin 5

如果要从 Python 脚本中创建进程,则需要在if __name__ == "__main__":块中保护该代码

from dask.distributed import Client

if __name__ == "__main__":
    client = Client()
Run Code Online (Sandbox Code Playgroud)

如果您想使用 dask-mpi,那么您需要使用mpirunmpiexec使用适当数量的进程运行它。