本文最后更新于 2019-03-01【1853 天前】,文中所描述的信息可能已发生改变,请谨慎使用。如有问题或建议,欢迎在文章底部留言参与讨论!

之前一直用的是 openmpi 进行运算,最近在使用一个新的程序,由于这个程序不提供源码,并且是使用 intel mpi 进行编译的,执行的时候也只能用 intel mpi 的 mpirun 进行并行运算,如果使用 openmpi,那计算效率有点感人,还时不时的报错。

报错信息

一开始这个程序的任务提交脚本是我基于 openmpi 的任务提交脚本修改的,运行的非常正常,但是元旦前后,这个程序突然在浪潮集群上出现了一个非常奇怪的问题:只能单节点并行,不能多节点并行计算,如果提交多节点任务,就会报错,报错信息如下:

[13:d056] unexpected DAPL connection event 0x4008 from 29
Assertion failed in file ../../src/mpid/ch3/channels/nemesis/netmod/dapl/dapl_poll_rc.c at line 1679: 0
internal ABORT - process 13

解决方案

对于这个错误,完全一脸懵逼,之前从未遇到过,谷歌了一圈,也没找到类似的错误,只能怀疑是集群出错,只好向集群管理老师求救,经过老师的调试,给出了我解决方案,记录如下。

open mpi 任务提交脚本

这个之前记录过,可以看之前的文章。
[post cid="45"]

原先的 intel mpi 任务提交脚本

#!/bin/bash -x
#PBS -l nodes=5:ppn=20
#PBS -j oe
#PBS -q xggong
#PBS -N try
#PBS -r y
CMD='/home/users/xggong13/soft/LASP/Src/lasp'

#define MPI PATH
source /opt/intel/composerxe/bin/compilervars.sh intel64 
source /opt/intel/impi/5.0.2.044/intel64/bin/mpivars.sh
I_MPI_HOME=/opt/intel/impi/5.0.2.044/intel64/

n_proc=$(cat $PBS_NODEFILE | wc -l)
cd $PBS_O_WORKDIR

$I_MPI_HOME/bin/mpirun -hostfile $PBS_NODEFILE  -np $n_proc $CMD > log.out.$(date +%m%d) 2>&1
exit 0

这个脚本,在物理系集群上运行正常,在浪潮集群上运行只能单节点,挺谜的。。

修改后 intel mpi 任务提交脚本

#!/bin/bash -x
PBS -l nodes=5:ppn=20
PBS -j oe
PBS -q xggong
PBS -N try
PBS -r y
CMD='/home/users/xggong13/soft/LASP/Src/lasp'
#define MPI PATH
source /opt/intel/impi/5.0.2.044/intel64/bin/mpivars.sh
INTELMPI_HOME=/opt/intel/impi/5.0.2.044/intel64
n_proc=$(cat $PBS_NODEFILE | wc -l)

export I_MPI_MPD_RSH=ssh
export I_MPI_USE_DYNAMIC_CONNECTIONS=0
export I_MPI_FABRICS_LIST="ofa,dapl,tcp,tmi"
export I_MPI_FALLBACK_DEVICE=1

cd $PBS_O_WORKDIR
/usr/bin/awk '{a[$1]++}b[$1,$2]!=1{b[$1]++}{b[$1,$2]=1}END{for (i in a)print i":"a[i]}' $PBS_NODEFILE > mpd.hosts
$INTELMPI_HOME/bin/mpirun -np $n_proc $CMD > log.out.$(date +%m%d) 2>&1
exit 0

这个脚本与之前的不同之处,是加了几个环境变量,还增加了mpd.hosts这个文件,但这个方案仍然存在一些问题,无法在脚本里进行多次计算,我的一堆脚本即将失效。

后记

open mpi 和 intel mpi 为什么不能搞个统一的接口,这样子就可以用同一个脚本,随时更换了。。。

文章目录


推荐使用:阿里云 云翼计划学生优惠、ECS、轻量应用等产品与服务【 点击注册

本文作者:Quanyin Tang

本文链接:并行计算之 intel mpi 任务提交 - https://www.imtqy.com/pbs-intelmpi.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Quanyin 所有,未经允许禁止转载,经授权转载请注明出处!