zoukankan      html  css  js  c++  java
  • MPI运行程序(接触)

    网友遇到的问题并解决问题:mpich2在多个节点上运行并行程序时出错

    我使用mpich2时遇到一下问题:
    当我运行一个计算圆周率的并行程序cpi.c时,我想在指定的若干个节点上运行这个程序,比如host1,host2,host3等,于是我将这3个节点名称写在一个文件hostfile里,
    以下是运行过程:
    mpd &
    mpicc cpi.c   //此时生成一个名为a.out的可执行文件
    mpiexec -machinefile hostfile -n 3 ./a.out
    就在此时出现了问题:
    mpiexec: unable to start all procs; may have invalid machine names
        remaining specified hosts:
            IP地址 (host2)
     IP地址 (host3)

    原因是这几个节点上的mpd连接不上从而无法通信,这个可能是ssh或是rsh的问题造成的。

    但是这个问题可以通过手动执行以下命令来解决:(假设是在host1上编译这个并行程序,就在host1上执行以下命令)

    mpd &
    mpdtrace -l //此处列出主机名和端口号,形式为:<hostname>_<port>

    然后登陆到文件中的其他每个节点执行以下命令:(此处为host2和host3)

    mpd -h <hostname> -p <port> &   //这里hostname和port是host1的hostname和port。

    然后在host1上执行mpdtrace就可以查看到执行mpd的主机名了,从而节点间也就可以正常痛心了。

    再执行mpiexec -machinefile hostfile -n 3 ./a.out时,就可以看到所预期的结果了 o(∩_∩)o...


    不过我感觉这个方法,不是最终的解决方法。还有待进一步研究。

    转自:http://blog.sina.com.cn/s/blog_4fd6fd310100aimr.html

  • 相关阅读:
    求解一元二次方程
    常用电脑软件
    c语言的布尔量
    unsigned int数据类型最大数
    int数据类型的最大数
    习题6-8 统计一行文本的单词个数
    习题6-6 使用函数输出一个整数的逆序数
    习题6-5 使用函数验证哥德巴赫猜想
    习题6-4 使用函数输出指定范围内的Fibonacci数
    C#委托、泛型委托
  • 原文地址:https://www.cnblogs.com/gladsomeboy/p/4046877.html
Copyright © 2011-2022 走看看