linux中mpi命令 mpd linux

linux mpi.h一般在哪linux mpi.h一般在哪?MPI(Message Passing Interface),是一种必须和其它程序语言一起使用的一个接口 。mpi.h就是这个接口库的头文件,需要下载并安装这个第三方库,目前主要使用的就是Mpich 。1.首先进行解压文件openmpi-1.6.2.tar.gz 。2.然后执行cd openmpi-1.6.2 3.接着执行./configure,一段时间之后发现缺少g编译器,所以执行sudo apt-get install g4.执行完之后再执行一次./configure就可以配置成功, 5.执行sudo make all in 。Linux下MPI环境的安装配置及MPI程序的编译运行,step by step 。
下载MPI安装包
去这里下载一个适合的安装包 。
安装包的解压
安装包所在的目录下,运行tar xzvf mpich-x.x.x.tgz 。
切换到解压出来的包目录下
cd mpich-x.x.x
configure配置编译环境,我这里为它选择了一个安装路径 。
怎么在linux上找到mpi1.4.1p1.tar.gz
2.然后解压,假设解压后的目录是/home/nh/Downloads/mpich2-1.4.1p1
3.nh@55ubuntu :~$ gcc --version
4.nh@55ubuntu:~$ g--version
5.nh@55ubuntu:~$ python --version
确认以上都已经安装了.
6.nh@55ubuntu:~$cd /home/nh/Downloads/mpich2-1.4.1p1
7.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ ./configure --prefix /home/nh/Downloads/mpich2
8.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ make
9.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ make install
10.设置环境变量
添加下面这行到/etc/profile文件的最后,然后重新起动系统使环境变量永久生效 。
export PATH=/home/nh/Downloads/mpich2/bin:$PATH
11. 添加mpd配置文件
在当前用户的home目录下面新建立一个名为".mpd.conf"的配置文件,文件的内容如下应该包括下面这行:
secretword=secretword
比如:
nh@55ubuntu:~$ more .mpd.conf
【linux中mpi命令 mpd linux】secretword=nh
secretword是你的密钥,是每台机器进行连接并用建立并行环境互相信任的基础 。
接下来,需要设置该文件的存取权限,这步是必须的,否则在后面的运行中会报错 。
nh@55ubuntu:$ sudo chmod 600 .mpd.conf
nh@55ubuntu:$ ls -ll .mpd.conf
-rw------- 1 zzm 1003 22 2010-01-07 13:54 .mpd.conf
12.在/home/nh/下新建一个文件名为hello.c,源代码如下:
#include mpi.h
#include stdio.h
int main(int argc, char *argv[])
{
int npes, myrank;
MPI_Init(argc, argv);
MPI_Comm_size(MPI_COMM_WORLD, npes);
MPI_Comm_rank(MPI_COMM_WORLD, myrank);
printf("From process %d out of %d, Hello World!\n", myrank, npes);
MPI_Finalize();
}
13.nh@55ubuntu:~/Downloads/mpich2/bin$ ./mpicc -o /home/nh/hello /home/nh/hello.c
14.nh@55ubuntu:~/Downloads/mpich2/bin$ ./mpirun -np 2 /home/nh/hello
From process 0 out of 2, Hello World!
From process 1 out of 2, Hello World!
如何在vmware配置linux下的mpi虚拟机CentOS中配置MPI多节点并行计算完整版,这是一个新手教程,从一个空白的CentOS到能正常运行的基础环境,尽量详细写了每个步骤
我的环境如下:
宿主机:Windows 10 Pro
虚拟机:VMware 12CentOS 6.6
一、 虚拟机网络配置实现多节点互访
硬件资源有限,所以我只开了两台虚拟机均为 Centos 6.6 。
1.修改网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 将其中内容修改如下:
DEVICE=eth0
HWADDR=00:0C:29:A0:3A:CA
TYPE=Ethernet
UUID=bf583745-f834-451c-890c-39821a590543
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.207.128
NETMASK=255.255.255.0
DNS1=192.168.207.2
将每一台虚拟机都如此配置 , IPADDR是ip地址,不要重复
2.修改网关及主机名
/etc/sysconfig/network
ETWORKING=yes
HOSTNAME=node1
NTPSERVERARGS=iburst
GATEWAY=192.168.207.2
一些文章中提到还需要修改VMware的设置(关闭本地DHCP服务),实际上,Centos 中设置好后就不需要动VMware的设置了
二、 在虚拟机中添加同名用户
在不同节点中需要有同名的用户以方便免密码SSH连接
node1和node2中以root用户执行下列命令
# useradd mpiuser
三、 实现免密码SSH登陆
当前节点为node1,用户为mpiuser,工作目录为 ~ 家目录
1.生成 SSH 私钥对
$ ssh-keygen -t rsa 一路回车就好
2.进入 .ssh 目录
$ cd ./.ssh
3.生成authorized_keys文件
$ cp id_rsa.pub authorized_keys
4.回到mpiuser的家目录
$ cd ~
5.建立本身的信任连接
$ ssh node1
6.设置 node2
$ ssh-keygen -t rsa 生成.ssh文件夹
$ scp node1:~/.ssh/* ./ 拷贝node1上的.ssh文件夹到node2
# scp node1:/etc/hosts /etc/hosts 拷贝node1上的hosts文件到node2,可能需要root权限
$ ssh node2
$ ssh node1
7.如果还有其他节点,设置方法同node2
设置成功后,在任意节点执行SSH连接其他节点都不需要密码,注意必需每个节点都有mpiuser这个用户,之所以使用一个普通用户,是为了避免root执行mpi程序时遇到风险 。在一些mpi实现中,也不允许以root用户执行 。
四、 配置MPI运行环境
1. 下载 mpich
官方网站下载其中的mpich-3.2.tar.gz
2. 解压并进入目录
# tar xvf mpich-3.2.tar.gz
# cd mpich-3.2
# ./configure –prefix=/usr/local/mpich
# make
# make install
3. 设置环境变量 , 修改 /etc/profile,加入下面几行代码
PATH=$PATH:/usr/local/mpich/bin
MANPATH=$MANPATH:/usr/local/mpich/man
export PATH MANPATH
4. 使刚刚的修改生效
# source /etc/profile
5. mpi多节点配置
新建一个配置文件
# touch /usr/local/mpich/servers
修改其中内容为:
node1:2 #在node1上运行两个进程
node2:2
如果有多个节点继续往下写
五、 单节点测试
将源码包中的 examples 拷贝到 mpich 的安装目录
# cp -r ./examples /usr/local/mpich/
用示例程序进行测试
$ mpirun -np 4 /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node1
Process 2 of 4 is on node1
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.081049
得到如图的回显结果证明mpich的运行环境正常
六、 多节点测试
$ mpiexec -np 4 -f /usr/local/mpich/servers /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node2
Process 2 of 4 is on node2
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.139722
如上,在两个节点上分别运行了两个进程,配置过程到此结束
linux(Ubuntu)中如何查看MPI、GNU的路径和库?which命令linux中mpi命令的作用是在PATH变量指定linux中mpi命令的路径中搜索某个系统命令linux中mpi命令的位置并且返回第一个搜索结果 。也就是说使用which命令就可以看到某个系统命令是否存在以及执行的到底是哪一个位置的命令
在linux下搭建intel-mpi,可以在个人笔记本上实验么一.配置安装MPI
1.先在官网下载openmpi安装包(Linux版):下载MPI
2.然后通过一下命令安装:
解压:
tar -zxvf openmpi-1.6.4.tar.gz
进入到解压文件目录下:
cd openmpi-1.6.4
执行:(在这一步之前,要确保已经安装g,没有安装可以输入命令:sudo apt-get install g进行安装)
./configure
安装所有文件:(这一步会花几分钟的时间,慢慢等待)
make all install
为/etc/profile文件添加库共享路径,(默认情况下,MPI的库文件在/usr/local/lib目录下),执行sudo geidt /etc/profile,然后在其中加入一行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
执行下面命令 , 使配置的文件有效:
source /etc/profile
到这里MPI就已经配置完成了!
接下来测试一下:
测试成功?。。。ㄈ绻鱿郑骸癱annont open shared object file…”的情况 , 需要重新编译source /etc/profile)
二、安装eclipse,下载eclipse 。下载完毕,直接解压运行即可 。
三、给eclipse装PTP插件
打开eclipsehelpinstall new softwareadd,然后输入需要安装的PTP……
安装完成!
Linux-Ubuntu open-mpi运行错误我在win10Linux子系统下使用mpirun多线程运行ABySS基因组拼接软件的时候,出现以下错误提示:
结果就是无法运行多线程,跑了一夜的程序没有任何动静,似乎是卡死了 。Google 到的解决方案:
root用户,终端运行如下命令:
"ptrace_scope"文件中原来的值为“1”,改成“0”就可以了 。
关于linux中mpi命令和mpd linux的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读