Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1410100
  • 博文数量: 350
  • 博客积分: 12557
  • 博客等级: 上将
  • 技术积分: 3621
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-22 07:33
文章分类

全部博文(350)

文章存档

2014年(2)

2013年(1)

2012年(15)

2011年(46)

2010年(61)

2009年(80)

2008年(80)

2007年(65)

分类: LINUX

2008-11-07 16:20:11

   近日,又做了一个小型集群,简单整理一下安装过程,以备以后查用.我使用的是Mpich 1.2.5,没有用LAM,也没有用MPI2.下面简单讲一下安装过程.
  一.系统安装
     我们采用了RHAS4.6 X86_64.4.6是AS4的最新稳定版,而CPU是64位的,为了得到最高性能,我们采用这个版本.
     分区:
     /App单独分一个区,以备共享软件之用.
     软件包,自定义,切记选上软件开发的包,不然什么东西都装不上.SElinux关闭,系统默认语言设置为英文.
  二.rlogine及rsh配置
   1.启用服务: vi /etc/xinetd.d/rlogin 及rsh,rexec三个文件,把disable=yes改成no.
    service xinetd restart
    netstat -anp |grep 513确认rlogin服务启动.如果没有启动,查看日志及配置文件,解决.
    2.不要密码访问其它节点
    vi /etc/hosts.equiv加入每个节点儿的名字.vi ~user/.rhosts加入node1 username(每个节点儿一行,所有的节点都写进去)
    3.使用rsh-server中的rsh/rlogin等命令替换kerberos的.
     cd  /usr/kerberos/bin ;mv rlogin rlogin.bak;ln -s /usr/bin/rlogin ./ 同样操作rsh,rcp.
   三.NFS及NIS配置
    1.NFS
     vi /etc/exports
     加入以下内容
     #
    /App 192.168.1.0/255.255.255.0(rw,sync)
    /home 192.168.1.0/255.255.255.0(rw,sync)
    (根据自己需要改变IP)
    servce nfs start
    service nfslock start
   2.NIS
    a. vi /etc/sysconfig/network 加入NISDOMAIN=domainname
    b.domainname domainname
    c.service protmap start;service ypserv start
    d./usr/lib64/yp/ypinit -m 按Crtl+d,按y(如果是32系统则用/usr/lib/yp/ypinit -m).
    e.service yppasswdd start;service ypserv restart
    f.在客户端上启动portmap,编辑/etc/fstab,挂载/home及/App.启动nfslock;用authconfig配置使用NIS,然后启动ypbind服务.
  四.MPI安装
     下载mpich-1.2.5.2.tar.gz(现在最新版本可能是Mpi-1.2.7).
      tar xvzf mpich-1.2.5.2.tar.gz -C /tmp;cd /tmp/mpich-1.2.5
      ./configure --with-device=ch_p4 --prefix=/App/mpich-1.2.5/ch_p4
      make ;make install
     vi /App/mpich-1.2.5/ch_p4/share/machines.LINUX
     加入node1
        node1
        node2
        node2
     每个节点系统认为有几个cpu,写几行.或者用它提示的node1:n(n=cpu个数,这种写法我没有测试成功)
    然后用test用户测试
     su - test
     mpirun -np 16 cpi(cpi是mpi安装目录中examples中编译生成的,例如cd /App/mpich-1.2.5/examples;make,16 是因为我有4个节点,每个节点有4个cpu).如果有任何一台节点没有启动,请编辑machines.LINUX,去掉该节点,不然会报错.
    注意:RHAS4.6自带lam 7.1.2,在~test/.bashrc中要加上export PATH=/App/mpich-1.2.5/ch_p4/bin:$PATH,不然会找系统自带的lam中的mpirun命令(而它是用ssh编译的),进程不能迁移到其它节点上.
     OK.我们可以看到mpi的环境已经正常,进程可以顺利迁移到其它节点上.
  五.Linpack性能测试软件的安装.
    1.在 下载hpl.tgz,在下载atlas3.6.0.gz
    2.tar xvzf atlas3.6.0.gz -C /App;cd /App/ATLAS;make,一路回车,然后会根据系统平台生成一个Make.Linux_HAMMER64SSE2_4(如果你的机器安装的是32的系统,可能生成的不是这个名字),然后make install arch=Linux_HAMMER64SSE2_4,程序运行结束后在/App/ATLAS/lib/Linux_HAMMER64SSE2_4生成libatlas.a等文件.
   3.tar xvzf hpl.tgz -C /App;cd /App/hpl;cp setup/Make.Linux_PII_CBLAS ./
    vi Make.Linux_PII_CBLAS做如下改动:
    TOPdir       = /App/hpl
    MPdir        = /App/mpich-1.2.5/ch_p4
    LAdir        = /App/ATLAS/lib/Linux_HAMMER64SSE2_4
  然后make arch=Linux_PII_CBLAS
   4.测试
     su - test
     cp /App/hpl/bin/Linux_PII_CBLAS ./
     mpirun -np 16 xhpl
   我的测试结果如下:
    WR00C2R4          35     4     4     1               0.00          7.788e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0362975 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0397970 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0139121 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2L2          35     4     4     1               0.01          3.894e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0355858 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0390167 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0136393 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2L4          35     4     4     1               0.01          3.894e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0377209 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0413577 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0144577 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2C2          35     4     4     1               0.01          3.894e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0355858 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0390167 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0136393 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2C4          35     4     4     1               0.01          3.894e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0398561 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0436987 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0152760 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2R2          35     4     4     1               0.01          2.596e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0355858 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0390167 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0136393 ...... PASSED
============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
WR00R2R4          35     4     4     1               0.01          3.894e-03
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.0362975 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0397970 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0139121 ...... PASSED
============================================================================
Finished    864 tests with the following results:
            864 tests completed and passed residual checks,
              0 tests completed and failed residual checks,
              0 tests skipped because of illegal input values.
----------------------------------------------------------------------------
End of Tests.
============================================================================
 
Ok,到此为止,我们简单安装了一个MPI的并行环境,并测试了其性能.并行运算有许多软件要基于MPI进行运算,当然也有其它软件不依赖MPI进行运算,例如Gaussian.03是借助linda或者OpenMP进行并行运算的,我们再根据具体的需求配置应用软件即可.
阅读(986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~