Dask-MPI

使用 MPI 轻松部署 Dask

Dask-MPI 项目使得在现有 MPI 环境中轻松部署 Dask 成为可能,例如使用常用的 MPI 命令行启动器 mpirunmpiexec 创建的环境。此类环境常见于高性能超级计算机、学术研究机构和其他已安装 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 脚本可以直接使用 mpirunmpiexec 启动。

mpirun -np 4 python my_client_script.py

这将在一个内聚的 MPI 计算中部署 Dask 调度器和工作节点以及用户的客户端进程。

命令行示例

或者,您可以使用 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 将 Dask 直接部署到 SLURM, SGE, PBS, LSF, Torque 等作业队列系统上。当您想在计算过程中动态扩展集群或用于交互式使用时,这会特别方便。