最新版的mpich简化了运行方式,不再提供mpd开头的命令,只需要一个mpiexec即可启动mpi运行环境,方便了mpi编程。源代码下载地址:http://www.mpich.org/downloads/。不过和之前的版本一样,在运行mpi程序时,首先要配置好系统环境。

1.       安装mpich3

从上述网址下载源代码后,解压,然后configure,最后make和make install。命令如下:

  • root@nami:~# tar zxvf mpich-3.0.4.tar.gz
  • root@nami:~# cd mpich-3.0.4/
  • root@nami:~/mpich-3.0.4# ./configure --prefix=/usr/local/mpich
  • root@nami:~/mpich-3.0.4# make
  • root@nami:~/mpich-3.0.4# make install

2.       配置环境变量

主要是修改path,为path添加mpi的bin目录:

  • root@nami:~# vim .bashrc
  • 在.bashrc文件的末尾添加:exportPATH=/usr/local/mpich/bin:$PATH
  • root@nami:~# source .bashrc
  • root@nami:~# echo $PATH,查看PATH变量是否发生变化;
  • root@nami:~# ls /usr/local/mpich/bin,查看bin下的可执行程序;
  • root@nami:~# which mpiexec,查看命令是否是我们安装目录下的命令

3.       配置多服务器间无密码访问

  • 在每台服务器上都执行ssh-keygen -t rsa生成密钥对: #ssh-keygen-t rsa,所有提示都按回车跳过。这时会在根目录下生成一个目录.ssh。里面有两个文件:id_rsa和id_rsa.pub。分别表示私钥和公钥。
  • 将每台服务器上的公钥,即id_rsa.pub分别复制到其他的服务器:#ssh-copy-id–i ~/.ssh/id_rsa.pub root@192.168.5.***。 以上命令,可以自动将公钥添加到名为authorized_keys的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆了。
  • 可以通过修改/etc/hosts文件将IP与host名对应,例如可添加如下行:

192.168.5.123    node1

192.168.5.124    node2

192.168.5.125    node3

到hosts的末尾。node*在实际情况中要替换成服务器的主机名,可通过hostname获得主机名。

  • 通过ssh命令访问不同的服务器,如果不需要密码则说明服务器之间可以无密码访问:#sshnode1。

4.       添加machinefile文件

该步骤是在各个服务器上指明要访问的其他服务器,在不同的服务器上内容一样。例如node1下的该文件内容为:

root@node1:~# cat machinefile

node1

node2

node3

5.       运行测试程序

root@nami:~# mpiexec -n 6 -machinefile~/machinefile ~/ mpich-3.0.4/examples/cpi

通过运行该命令测试是否正确安装mpich3。注意一点可执行程序在不同服务器上的位置要一样,否则会报错。上述命令的结果是:

Process 2 of 6 is on node1

Process 5 of 6 is on node1

Process 0 of 6 is on node2

Process 3 of 6 is on node2

Process 1 of 6 is on node3

Process 4 of 6 is on node3

pi is approximately 3.1415926544231243, Error is 0.0000000008333312

wall clock time = 0.001908

更多的命令参数可参看官网文档:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-userguide.pdf

按照上述步骤绝大多数情况下可以正确安装mpich3,有一点需要注意,在所有的服务器上运行的mpi版本必须一致,否则也会出错。有时有些问题是由于防火墙导致的,在运行mpi程序时,我们可以关掉防火墙:

  • 关闭防火墙

#service iptables stop

  • 查看防火墙状态

#service iptables status

但总而言之,mpich3运行过程中出现的问题要比mpich2少很多,也方便很多。

MPICH3环境配置的更多相关文章

  1. 超算云(GPU服务器)环境配置

    最近在用并行超算云GPU服务器(中国国家网格12区)搭建毕设的环境,这里记录一下. 首先,超算云服务器的登录可以采用网页版.也可以采用客户端(超算云地址:https://cloud.paratera. ...

  2. uboot环境配置

    uboot环境配置 通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核.这个配置主要是通过uboot ...

  3. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  4. Electron的环境配置

    原文地址http://huisky.com/blog/161218121551123 本文介绍了Electron的环境配置,包括Electron下载.nodejs下载安装.NPM+Bower安装配置. ...

  5. Python开发环境配置

    好久没有写博客了,自从6月份毕业后,进入一家做书法.字画文化宣传的互联网公司(www.manyiaby.com),这段时间一直在进行前端开发,对于后端的使用很少了,整天都是什么html.css.jav ...

  6. PHP_环境配置_python脚本_2017

    Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...

  7. PHP环境配置

    PHP环境配置 1.Apache的安装 第一步: 1.    双击httpd-2.2.17-win32-x86-no_ssl.msi.出现 Windows 标准的软件安装欢迎界面,直接点“Next”继 ...

  8. Visual studio 通用开发环境配置:SDL,FFMPEG为例

    引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...

  9. windows 7下React Native环境配置

    React Native 是 Facebook 推出的一个用 Java 语言就能同时编写 ios,android,以及后台的一项技术,它可以做到实时热更新 .FaceBook 也号称这们技术是 “Le ...

随机推荐

  1. 2^x mod n = 1 【杭电-HDOJ-1395】 附题

    /* 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. 原生app与web app的比较

    http://www.2ee9.com/news/news_show_36_237.html http://zhidao.baidu.com/link?url=7lWq2tgqiMiDmsRd54hO ...

  3. Web 应用程序项目 XXXX 已配置为使用 IIS。 无法访问 IIS 元数据库。您没有足够的特权访问计算机上的 IIS 网站。(转载)

    Web 应用程序项目 XXXX 已配置为使用 IIS. 无法访问 IIS 元数据库.您没有足够的特权访问计算机上的 IIS 网站. 2012年05月19日 ⁄ 综合 ⁄ 共 261字 ⁄ 字号 小 中 ...

  4. Eclispse 换主题、皮肤、配色,换黑色主题护眼

    链接地址:http://jingyan.baidu.com/article/6c67b1d68c03be2787bb1ed6.html Eclipse写android代码时,默认的文本和框架都是白色, ...

  5. Http方式获取网络数据

    通过以下代码可以根据网址获取网页的html数据,安卓中获取网络数据的时候会用到,而且会用Java中的sax方式解析获取到数据.(sax解析主要是解析xml)具体代码如下: package com.wy ...

  6. Qt 无边框窗体改变大小 完美实现

    近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...

  7. 基于visual Studio2013解决C语言竞赛题之0802图书信息查询

     题目 解决代码及点评 /* 功能:有一批图书,每本书有:书名(name),作者(author) , 编号(num),出版日期(date)四个数据, 希望输入后按书名的字母顺序将各书的记录排列好, ...

  8. Android事件模型之interceptTouchEvnet ,onTouchEvent关系正解

    首先,看Android的官方文档正解 onInterceptTouchEvent()与onTouchEvent()的机制: 1. down事件首先会传递到onInterceptTouchEvent() ...

  9. Unicode编码(转)

    随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题 ...

  10. Bitmap Style Designer非官方说明

    Bitmap Style Designer Bitmap Style Designer给我的第一印象就是简陋,估计也是为了赶工.大致体会了一下,还是能够使用.因为目前没有对此有比较详细的中文资料,就把 ...