MPICH2的安装

    最近由于导师的一个项目结项,需要搭建一个并行运算平台。经高手推荐,我们打算采用MPI+OpenPBS来搭建,各节点机位为fodera,通过共享上网。

 

假设共有4台机器,主机名分别为station1,station2,station3,station4。以第一台为例:

 

1.1、更改/etc/hosts文件

#vi /etc/hosts

    打开hosts文件,更改如下:

    #127.0.0.1 localhost.localdomain localhost注意,这行必须注释,否则连不上计算节点)

    192.168.0.1 station1

    192.168.0.2 station2

    192.168.0.3 station3

    192.168.0.4 station4

 

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

 

1.2.1 在station1生成SSH秘钥对

    #ssh-keygen -t rsa  #一路回车即可,产生.ssh文件
    #ls -a                       #查看是否有.ssh文件夹

1.2.2进入.ssh目录
    #cd .ssh

 

1.2.3 生成authorized_keys文件

    #cp id_rsa.pub authorized_keys 

 

1.2.4 退出到root目录

    #cd ..

 

1.2.5 建立本身的信任连接

    #ssh station1      #按提示输入yes

 

1.2.6 设置station2(station2的root目录下)
    #ssh-keygen -t rsa     生成.ssh文件夹
    #scp 192.168.0.1:/root/.ssh/* /root/.ssh    拷贝station1上的.ssh文件夹覆盖本地的
    #scp 192.168.0.1:/etc/hosts /etc/hosts      拷贝station1上的hosts文件覆盖本地的
    #ssh station1  提示处输入yes回车

设置station3,station4的方法与station2相同

 

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

    #ssh station1

    #ssh station2

    #ssh station3

    #ssh station4

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

 

2  安装mpich2

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

    #tar -zxvf mpich2-1.0.8.tar.gz

 

2.2 进入mpich2解压目录

    #cd mpich2-1.0.8

 

2.3 设置安装目录

    #./configure --prefix=/usr/local/mpich

 

2.4 编译

    #make

 

2.5 安装

    #make install

 

2.6 改变目录(可选)

    #mv mpich2-1.0.8 /usr/local/mpich/install

 

2.7 退出到root目录

    #cd

 

2.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/mpich/bin"   #新增加的

   #Source global definitions

   if [ -f /etc/bashrc ]; then

  . /etc/bashrc

   fi

 

2.9 测试环境变量设置

    #which mpd

    #which mpicc

    #which mpiexec

    #which mpirun

 

2.10 修改/etc/mpd.conf文件,内容为secretword=myword

   #vi /etc/mpd.conf

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

   #touch /etc/mpd.conf

   #chmod 600 /etc/mpd.conf

 

2.11 创建主机名称集合文件/root/mpd.hosts

   #vi mpd.hosts

   文件内容如下:

   station1

   station2

   station3

   station4

 

3  测试

3.1 本地测试

  启动:

#mpd&

[1] 24455

  观看启动机器:

  #mpdtrace

station1

退出:

  #mpdallexit

3.2运行集群系统

  #mpdboot -n 4 -f mpd.hosts

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

    #mpdtrace

    station1

    station6

    station3

    station8

  #mpdallexit

 

3.3测试运行MPICH的圆周率的程序

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

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

    mpicc icpi.c -o icpi

 

3.1 集群测试

    #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

 

3.2 单机测试

    #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秒,这是因为并行运算过程中,参与运算的机器需要通过网络传递一些消息,如果计算量不大的话,花在了这上面的时间影响会比较明显,因而反不如单机的来得快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值