积少成多 · 06/20/2024

MPI跨节点跑多GPU任务

需要确保资源正确分配,mpirun可以用如下命令,$ngpu$ 是跨节点的总GPU数,$ngpu_per_node是每个节点的GPU数量

mpirun -np $ngpu -npernode $ngpu_per_node \
    --map-by slot:pe=1 \
    --rank-by slot \
    --bind-to core \
    --report-bindings \
    <commond to run>

作业脚本为了跨节点GPU申请也需要使用额外的设置,这里以slurm为例,应该写成

#!/bin/bash
#SBATCH -N 4 # 节点数
#SBATCH --gres=gpu:8 # 每个节点的GPU个数,对应$ngpu_per_nod
#SBATCH --qos=<gpu资源名称> # 这部分需要参考服务器的说明