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 调度器和工作节点以及用户的 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。当你希望在计算过程中动态伸缩集群,或者用于交互式使用时,这会特别有用。