我正在尝试构建一个脚本,它在特定时间以批处理模式运行mpi作业。如果我在控制台mpdallexit
、mpdboot
和mpirun
中运行,一切正常,并行作业将在mpd.hosts中的所有节点上启动。但是,如果我试图从bash脚本(现在与at script一起发送+1分钟)运行,mpd就会崩溃,并且不会启动作业。
这是脚本中的相关行
$path_mpi/mpdallexit
$path_mpi/mpdboot -n 5 &
time $path_mpi/mpirun -n 21 ./rams60 -f RAMSIN.operatiu
$path_mpi/mpdallexit
以及日志中的错误消息。
mpiexec_ventus: cannot connect to local mpd (/tmp/mpd2.console_meteo); possible causes:
1. no mpd is running on this host
2. an mpd is running but was started without a "console" (-n option)
In case 1, you can start an mpd on this host with:
mpd &
and you will be able to run jobs just on this host.
For more details on starting mpds on a set of hosts, see
the MPICH2 Installation Guide.
我尝试过与mpdboot不同的选项。
--loccons says you do not want a console available on local mpd(s)
--remcons says you do not want consoles available on remote mpd(s)
或
mpdboot -n 5 &
但没有成功
安装于/usr/local/mpich2-1.0.5p4/
编辑1:
在尝试了关于睡眠的@shellter建议之后,我无法运行并行作业,也无法使用at
,也不能运行cron
。在发出批处理mpirun
作业时,一些进程从主节点开始,但不在其他集群节点中启动:
在主节点中
ps -ef grep报meteo 28043 26837 0 Apr21 ?00:00 time /usr/bin/mpirun -n 50 -f machinefile ./ rams 60 -f RAMSIN.operatiu meteo 28044 28043 0 Apr21 ? 00:00:00 /usr/bin/mpirun -n 50 -f machinefile ./rams 60 -f RAMSIN.operatiu meteo 28050 28045 0 Apr21 ? 00:00:00 /rams 60 -f RAMSIN.operatiu meteo 28051 28045 0 Apr21 ? 00:00:00。/rams60 -f RAMSIN.operatiu meteo 28052 28045 0 Apr21 ? 00:00:00 ./rams60 60 -f RAMSIN.operatiu meteo 28053 28045 0 Apr21 ?00:00 ./rams60 60 -f RAMSIN.operatiu meteo 28054 28045 0 Apr21 ? 00:00:00。/rams60 -f meteo 28055 28045 0 Apr21 ? 00:00:00。/rams60 -f RAMSIN.operatiu meteo 28056 28045 0 Apr21 ? 00:00:00 :00。/rams60 -f RAMSIN.operatiu meteo 28057 28045 0 Apr21 ? 00:00:00 ./rams60 60 -f RAMSIN.operatiu meteo 28058 28045 0 Apr21 ?00:00 ./rams60 60 -f RAMSIN.operatiu meteo 28059 28045 0 Apr21 ? 00:00:00 ./rams60 60 -f RAMSIN.operatiu meteo 28060 28045 0 Apr21 ? 00:00:00。
此外,rams60没有创建任何输出文件,而它的第一件事是编写开始分析文件。
如果在命令行中执行脚本,一切都会正常运行,但在批处理时,mpich似乎无法与节点通信。
首先,我在主节点中安装了mpich2,并将NFS导出到其他节点。现在,我已经在每个节点上安装了mpich2。
谢谢
提前感谢
发布于 2014-06-20 07:45:25
最后,我可以解决cron工作的问题,多亏了“mpich-洽谈”邮件列表中的Goullardet。
问题来自于运行批处理作业的环境。Cron使用最小的环境,所以在集群节点中找不到我的工作所需的一些库。我不得不在我的脚本中添加一行,导出一些lib:
export LD_LIBRARY_PATH=/usr/local/mpich2-1.0.5p4/lib:/usr/local/hdf5/lib:$LD_LIBRARY_PATH
现在一切都很好,我的脚本一天运行两次。谢谢大家的帮助,在这个过程中,我学到了一些关于cron的知识。
发布于 2014-04-27 09:30:39
错误信息非常清楚:
mpiexec_ventus: cannot connect to local mpd (/tmp/mpd2.console_meteo); possible causes:
1. no mpd is running on this host
2. an mpd is running but was started without a "console" (-n option)
我猜你在运行mpd所以..。检查它的-n
选项。
发布于 2014-04-28 04:30:30
您可以使用屏幕为脚本提供tty,因为cron、at或嵌套脚本在默认情况下不会分配脚本。如果必要的话,你可以用这种方式连接到它上。
screen -D -m <command>
这将在一个独立的屏幕会话中启动您的命令,该会话将在命令完成时退出。
https://stackoverflow.com/questions/23107758
复制相似问题