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)
你看到没有使用内核,因此脚本永远运行而不做任何事情。
如何正确设置我的脚本?
如果要从 Python 脚本中创建进程,则需要在if __name__ == "__main__":块中保护该代码
from dask.distributed import Client
if __name__ == "__main__":
client = Client()
Run Code Online (Sandbox Code Playgroud)
如果您想使用 dask-mpi,那么您需要使用mpirun或mpiexec使用适当数量的进程运行它。