在linux下搭建intel-mpi,可以在个人笔记本上实验么

在linux下搭建intel-mpi,可以在个人笔记本上实验么,第1张

一.配置安装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就已经配置完成了!

接下来测试一下:

测试成功!!!(如果出现:“cannont open shared object file…”的情况,需要重新编译source /etc/profile)

二、安装eclipse,下载eclipse。下载完毕,直接解压运行即可。

三、给eclipse装PTP插件

打开eclipse>help>install new software>>addhttp://download.eclipse.org/releases/juno,然后输入需要安装的PTP……

安装完成!

虚拟机CentOS中配置MPI多节点并行计算完整版,这是一个新手教程,从一个空白的CentOS到能正常运行的基础环境,尽量详细写了每个步骤

我的环境如下:

宿主机:Windows 10 Pro

虚拟机:VMware 12 + CentOS 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

官方网站 http://www.mpich.org 下载其中的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

如上,在两个节点上分别运行了两个进程,配置过程到此结束

1.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

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!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6104761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存