mpiexec_logon01: cannot connect to local mpd (/tmp/mpd2.console_ycai)

来源:互联网 发布:node sass ruby 编辑:程序博客网 时间:2024/05/22 03:23

问题描述:

   想在高性能计算中心集群上运行一个简单的mpi程序,输入命令

    mpirun -n 4 ./Demo_00.exe 

后却出现如下提示:

  mpiexec_logon01: cannot connect to local mpd (/tmp/mpd2.console_ycai); 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.


解决办法:

$ cd $HOME
$ touch .mpd.conf
$ chmod 600 .mpd.conf
然后运行mpdboot。


然后运行就没问题了,不过运行的时候要注意这样用命令:

   mpirun -n 4 ./Demo_00.exe 

不要这样:   mpirun -n 4 Demo_00.exe ,这样出现如下提示:

problem with execution of Demo_00.exe  on  logon01:  [Errno 13] Permission denied 
problem with execution of Demo_00.exe  on  logon01:  [Errno 13] Permission denied 
problem with execution of Demo_00.exe  on  logon01:  [Errno 13] Permission denied 


P.S:本文在解决问题时参考帖子:点击打开链接

       另外可以阅读该文章:点击打开链接

总结:

      MPICH2提供进程管理与通信的分离。默认的运行时环境由一系列的守护进程(daemons)叫mpd的组成,在应用程序启动前建立所用机器之间的通讯,因而在通信不能建立出错时提供了清晰的画面,在并行任务(job)启动时提供一种快速可度量的启动机制(可以简单的把mpd看成mpi的进程管理器,欲要mpi进行作业首先先配置好mpd)。

     这个问题的出现有可能是没有启动mpd,mpd的启动命令是mpdboot,所以说一般用mpdboot启动mpd就好了,启动前可以先用mpdtrace命令查看是否有mpd进程。

     另外退出mpd的命令是mpdallexit


附 MPI常见命令:

1. mpdboot:  
启动集群mpd守护进程,在运行MPI程序前必须开启每个节点上的mpd守护进程。
常用的参数: -n  nodenum,需要启动的节点数量
        -f  hostsfile节点列表,与-n 一起使用表示启动节点列表中的nodenum个节点。
  若没有-n选项,则只启动本地mpd进程。

2. mpdtrace:
查看集群mpd守护进程。
常用参数:  -l  输出mpdid和IP

3. mpdexit:
杀死mpd守护进程。
常用参数:  mpdid

4. mpdallexit:
杀死所有的mpd守护进程。

5. mpicc:
MPI程序编译命令。
常用参数: -g  加入调试信息。

6. mpiexec:
MPI程序运行命令,运行前必须开启mpd守护进程。
常用形式: mpiexec 
   mpiexec : \ 
           
   mpiexec –configfile 
其中,  全局选项运用于所有MPI进程。 
    本地选项应用于部分MPI进程集合。
  可执行文件的路劲。
         包含命令行选项的文件。 
全局选项中常用参数:-gdb 调试运行
-machinefile MPI进程分配文件。
本地选项中常用参数:-n num 设置执行MPI程序的进程总数
注意:全局选项和本地选项顺序不要弄错。

7. mpirun:
  MPI程序快速执行命令,运行前不必运行mpdboot开启守护进程。

8. mpd测试命令:mpdcheck和mpdringtest
mpdcheck用来检查mpi安装和运行时的故障和异常。
mpdringtest测试一个mpd回环的传输时间。

9. mpd帮助命令:mpdhelp
   mpdhelp显示所有mpd命令。

1 0
原创粉丝点击