我有一个使用MPICH的MPI fortran应用程序,如果我使用的话可以毫无问题地启动/运行:
mpiexec -n 16 -f $PBS_NODEFILE $PBS_O_WORKDIR/myMODEL.a
在上面的例子中,我问2个节点,一旦集群上的每个节点都有8个cpu。
问题是我的/ home是通过头节点安装在计算节点上的NFS,而这些磁盘的i / o非常慢。此外,我的应用程序有很多i / o,根据经验,NFS挂载磁盘到头节点的过多i / o可以锁定头节点(这很糟糕),并且它可能变得完全没有响应。
群集系统有一个本地为每个节点上的每个JOB安装的磁盘(我可以使用环境变量TMPDIR到达此目录),因此我的作业需要在此磁盘下运行。知道了这一点,我的策略非常简单:
如果我执行上述所有步骤,只需要一个节点来请求集群系统(PBS / Torque),就没有问题。
#!/bin/csh
#PBS -N TESTE
#PBS -o stdout_file.out
#PBS -e stderr_file.err
#PBS -l walltime=00:01:00
#PBS -q debug
#PBS -l mem=512mb
#PBS -l nodes=1:ppn=8
set NCPU = `wc -l < $PBS_NODEFILE`
set NNODES = `uniq $PBS_NODEFILE | wc -l`
cd $TMPDIR
cp $PBS_O_WORKDIR/myMODEL.a ./myMODEL.a
mpiexec -n $NCPU -f $PBS_NODEFILE ./myMODEL.a
但如果我问多个节点
#!/bin/csh
#PBS -N TESTE
#PBS -o stdout_file.out
#PBS -e stderr_file.err
#PBS -l walltime=00:01:00
#PBS -q debug
#PBS -l mem=512mb
#PBS -l nodes=2:ppn=8
set NCPU = `wc -l < $PBS_NODEFILE`
set NNODES = `uniq $PBS_NODEFILE | wc -l`
cd $TMPDIR
cp $PBS_O_WORKDIR/myMODEL.a ./myMODEL.a
mpiexec -n $NCPU -f $PBS_NODEFILE ./myMODEL.a
我收到以下错误:
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process(/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:1@compute-4-5.local] HYDU_create_process(/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69):execvp 文件/state/partition1/74127.beach.colorado.edu/myMODEL.a上的错误(否 这样的文件或目录)
[proxy:0:0@compute-0-1.local] HYD_pmcd_pmip_control_cmd_cb(/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmip_cb.c:955):断言 (!关闭)失败
[proxy:0:0@compute-0-1.local] HYDT_dmxu_poll_wait_for_event (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/demux/demux_poll.c:77): 回调返回错误状态
[proxy:0:0@compute-0-1.local] main (/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmip.c:226):demux引擎 错误等待事件
[mpiexec@compute-0-1.local] HYDT_bscu_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c:70): 其中一个进程终止严重;中止
[mpiexec@compute-0-1.local] HYDT_bsci_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/bootstrap/src/bsci_wait.c:23): 启动器返回错误等待完成
[mpiexec@compute-0-1.local] HYD_pmci_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c:191): 启动器返回错误等待完成
[mpiexec@compute-0-1.local] main (/tmp/mvapich2-1.8.1/src/pm/hydra/ui/mpich/mpiexec.c:405):进程 经理错误等待完成
我做错了什么?
答案 0 :(得分:3)
看起来当mvapich在第二个节点上启动进程时,它找不到您的可执行文件。尝试在mpiexec之前添加以下内容,将可执行文件和其他任何内容复制到节点临时目录中。我不是csh用户,所以你可以做得更好。
foreach n ( `uniq $PBS_NODEFILE` )
scp $PBS_O_WORKDIR/myMODEL.a $n:$TMPDIR
end