配置linux高性能计算集群------MPI

2.3.1配置IP地址及网络环境

(1) 设置IP,更改主机名为node1,node2,node3,node4,如图所示2-1所示:

 

Pc

主机名

IP

节点1

Node1

192.168.0.164

节点2

Node2

192.168.0.145

节点3

Node3

192.168.0.151

节点4

Node4

192.168.0.118

 

图2-1配置PC机的网络配置

以四台pc为例,为了方便,分别更改了四台机器的主机名为node1,node2,node3,node4,以第一台为例:得网络配置

(2)hostname node1  临时更改主机名,使得在当前系统马上实现。

(3)vim /etc/sysconfig/network  永久更改主机名,使得下次启动系统时使用

编辑内容为(最后一行就是要改的主机名):

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node1

(4)更改/etc/hosts文件

#vi /etc/hosts   打开hosts文件,更改如下:

127.0.0.1 localhost.localdomain localhost

192.168.0.164 node1

192.168.0.145 node2

192.168.0.151 node3

192.168.0.118 node4

 

2.3.2创建SSH信任连接(在root目录下)

(1)在station1生成SSH秘钥对

#ssh-keygen -t dsa   产生.ssh文件,

#ls -a   查看是否有.ssh文件夹

(2)进入.ssh目录
   #cd .ssh

(3)生成authorized_keys文件

#mv id_rsa.pub authorized_keys 

(4)建立本身的信任连接

#ssh node1     按提示输入yes

(5)分别更改其他节点的hostname,/etc/sysconfig/network

(6)将生成authorized_keys文件scp给其他的节点

#scp  -r  ~/.ssh node2:/root/ 拷贝node1上的.ssh文件夹scp给node2 

#scp /etc/hosts node2:/etc/  拷贝node1上的hosts文件scp到node2上

设置node3,node4的方法与node2相同

(7)确认四台机器的信任连接已建立
   对每个节点执行:

#ssh node1

#ssh node2

#ssh node3

#ssh node4

在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)

 

2.4 安装MPICH2

(1)到MPICH官方网站下载源代码包,解压缩

#tar -zxvf mpich2-1.3.2p1.tar.gz

(2)进入mpich2解压目录

#cd mpich2-1.3.2p1

(3)编译并且指定安装目录

#./configure --prefix=/usr/loca/mpi

(4)编译

#make

(5)安装

#make install

(6)进入mpd目录,安装mpd

#cd src/pm/mpd

#./configure –prefix=/usr/local/mpi

#make && make install

(7)退出到root目录

#cd

(8)通过编辑.bashrc文件修改环境变量

#vim .bashrc

修改后的.bashrc文件如下:

# .bashrc

# User specific aliases and functions

 

    alias rm='rm -i'

    alias cp='cp -i'

    alias mv='mv -i'

    PATH="$PATH:/usr/local/mpi/bin"   #新增加的

#Source global definitions

   if [ -f /etc/bashrc ]; then

  . /etc/bashrc

   fi

(9)测试环境变量设置

#which mpd

#which mpicc

#which mpiexec

#which mpirun

(10)修改/usr/local/mpi/etc/mpd.conf文件,内容为secretword=myword

#vi /usr/local/mpi/etc/mpd.conf

设置文件读取权限和修改时间

#touch /usr/local/mpi/etc/mpd.conf

#chmod 600 /usr/local/mpi/etc/mpd.conf

(11)创建主机名称集合文件etc/mpd.hosts

#vi mpd.hosts

文件内容如下:

   Node1

Node2

Node3

Node4

2.5 测试

(1)本地测试

启动:

#mpd &

[1] 21055

观看启动机器:

#mpdtrace

node1

退出:

#mpdallexit

(2) 运行集群系统

#mpdboot -n 4 -f mpd.hosts

参数-n 4指定了要起动的机器个数,-f mpd.hosts指定了通过mpd.hosts运行

#mpdtrace

Node1

Node2

node3

node4

#mpdallexit

(3) 测试运行MPICH的圆周率的程序

在软件的安装包里有圆周率计算的原代码icpi.c,先编译成可执行文件

#cd /usr/local/mpich/install/examples/

mpicc icpi.c -o icpi

(4) 集群测试

#mpdboot -n 4 -f mpd.hosts   启动这四台机器

#mpiexec -n 4 /usr/local/mpich/install/examples/icpi

用num指定使用的进程数

Enter the number of intervals: (0 quits) 100000000

pi is approximately 3.1415926535901937, Error is 0.0000000000004006

wall clock time = 18.460739

Enter the number of intervals: (0 quits) 10000

pi is approximately 3.1415926544231239, Error is 0.0000000008333307

wall clock time = 0.022534

Enter the number of intervals: (0 quits) 0

#mpdallexit

(5) 单机测试

#cd /usr/local/mpich/install/examples/  

#./icpi

Enter the number of intervals: (0 quits) 100000000

pi is approximately 3.1415926535902345, Error is 0.0000000000004414

wall clock time = 73.898167

Enter the number of intervals: (0 quits) 10000

pi is approximately 3.1415926544231341, Error is 0.0000000008333410

wall clock time = 0.010941

测试结果表明:在intervals的值设为100000000,既精确值比较大时,群集的4进程并发运行时间是18.460739秒,单机单进程运行时间是73.898167秒,明显快很多,并行运算还是很有效果的。在intervals的值设为10000,既精确值比较小时,群集的4进程并发运行时间是0.022534秒,单机单进程运行时间是0.010941秒,这是因为并行运算过程中,参与运算的机器需要通过网络传递一些消息,如果计算量不大的话,花在了这上面的时间影响会比较明显,因而反不如单机的来得快。

posted @ 2012-12-17 14:29  Excelight  Views(562)  Comments(0)    收藏  举报