Dask-MPI
目录
Dask-MPI¶
使用 MPI 轻松部署 Dask
Dask-MPI 项目使得在现有 MPI 环境中轻松部署 Dask 成为可能,例如使用常见的 MPI 命令行启动器 mpirun
或 mpiexec
创建的环境。这类环境常见于高性能超级计算机、学术研究机构以及已安装 MPI 的其他集群。
Dask-MPI 提供了两种便捷的接口来启动 Dask,可以从批处理脚本内启动,也可以直接从命令行启动。
批处理脚本示例¶
你可以使用 dask_mpi.initialize
函数将你的批处理 Python 脚本变成一个 MPI 可执行文件。
from dask_mpi import initialize
initialize()
from dask.distributed import Client
client = Client() # Connect this local process to remote workers
这使得你的 Python 脚本可以直接通过 mpirun
或 mpiexec
启动。
mpirun -np 4 python my_client_script.py
这将在一个单一、内聚的 MPI 计算中部署 Dask 调度器和工作节点以及用户的 Client 进程。
命令行示例¶
另外,你可以直接从命令行使用 dask-mpi
命令启动一个 Dask 集群,并指定一个调度器文件,Dask 将在此文件中写入连接信息。
mpirun -np 4 dask-mpi --scheduler-file ~/dask-scheduler.json
然后,你可以通过引用 dask-mpi
创建的同一个调度器文件,从单独的批处理脚本或交互式会话(如 Jupyter Notebook)访问此集群。
from dask.distributed import Client
client = Client(scheduler_file='~/dask-scheduler.json')
直接使用作业排队系统¶
你也可以使用 Dask Jobqueue 直接在 SLURM、SGE、PBS、LSF、Torque 或其他作业排队系统上部署 Dask。当你希望在计算过程中动态伸缩集群,或者用于交互式使用时,这会特别有用。