多节点运行MPI出现orterun命令未找到及资源配置相关问题
问题解答
问题1:多节点运行时orterun的-np参数设置
- 必须填写两个节点的总rank数,你当前场景总rank为6+5=11,因此
-np参数需要设置为-np 11。你原有脚本写的-np 6只会启动6个rank,无法用到第二个节点的资源,甚至会因为请求rank数和hostfile的slots配置不匹配抛出异常。
问题2:PBS脚本的资源申请配置
- 必须填写两个节点的总资源,你当前的配置仅申请了1个节点的资源,调度器只会给你分配1台计算节点,
$PBS_NODEFILE中只会有1个节点地址,你生成的hostfile也不会有第二个节点的条目,自然无法启动多节点任务。 - 你的场景对应修改后的PBS资源配置如下:
#PBS -l walltime=00:05:00 #PBS -l ncpus=96 # 2节点*48核/节点 #PBS -l ngpus=8 # 2节点*4GPU/节点 #PBS -l mem=768GB # 2节点*384GB/节点 #PBS -l jobfs=200GB # 2节点*100GB/节点 #PBS -q gpuvolta #PBS -P kv03 #PBS -l wd
额外报错修复(orterun: command not found)
- 该报错是因为PBS作业的运行环境是初始化的干净环境,不会继承你交互式终端加载的模块,你需要在脚本中
orterun命令执行前,先加载你单节点运行时使用的OpenMPI模块,示例如下(替换为你实际使用的模块版本即可):
export OMP_NUM_THREADS=1 # 新增模块加载命令,Gadi平台可用对应版本示例: module load openmpi/4.1.5 orterun --mca btl vader,self,tcp -np 11 --bind-to core --hostfile $hostfile ./exe1 w6-new.json
内容的提问来源于stack exchange,提问作者Fazeleh
相关产品推荐
相关产品推荐

