集群环境
[prerequisite]
$ apt-get install ssh
$ apt-get install g++
$ apt-get install gfortran
$ apt-get install nfs-kernel-server # it contains nfs client
[ steps ]
1. Create a user # e.g. peter
$ useradd --home /home/peter --create-home peter
$ passwd peter
Edit /etc/passwd, 把peter用户的/bin/sh改成/bin/bash
2.configure ssh
Under home dir of peter
$ ssh-keygen -t rsa # will create id_rsa, id_rsa.pub
$ touch authorized_keys
$ chmod 600 authorized_keys
$ cat id_rsa.pub > authorized_keys
$ /etc/init.d/ssh restart
$ ssh localhost # 测试是不是不需要输密码
3. Setup nfs
$ /etc/init.d/nfs-kernel-server restart
$ mkdir -p nfs4hpl/mpich-install #nfs目录
$ mkdir -p nfs4hpl/linpack
$ mkdir mpich-install #本地挂载mpich的安装目录
$ mkdir linpack # 本地挂载linpack的目录
$ mount {nfsIPAddress}:/home/peter/nfs4hpl/mpich-install /home/peter/mpich-install
$ mount {nfsIPAddress}:/home/peter/nfs4hpl/linpack /home/peter/linpack
4. Install mpich
Mpich官网下载www.mpich.org/downloads/
mpich-3.0.4 (stable release) ,并且下载官方installation guide,下面几步几乎是照抄文档的。
$ su peter
$ cd /home/peter
$ mkdir libraries
$ cd libraries
$ tar zxvf mpich-3.0.4.tar.gz
Generate source code
$ mkdir -p /tmp/peter/mpich-3.0.4
$ cd /tmp/peter/mpich-3.0.4
$ /home/peter/libraries/mpich-3.0.4/configure -prefix=/home/peter/mpich-install 2>&1 | tee c.txt
查看c.txt有没有错
Build mpich
在/tmp/peter/mpich-3.0.4
$ make 2>&1 | tee m.txt
Install mpich
$ make install 2>&1 | tee mi.txt
Configure env variable
$ export PATH=/home/peter/mpich-install/bin:$PATH #当前shell和它派生的子shell有效,新建shell需要重新设一遍
Check
$ which mpicc
$ which mpirun
$ mpiexec -n 1 hostname
Install hpl
由于hpl依赖blas库,先编译blas库
下载blas.tgz
下载hpl.tz
安装blas
$ su peter
$ cd /home/peter/linpack/
$ tar zxvf blas.tgz #生成BLAS文件夹
$ cd BLAS
检查Makefile和makefile.inc,一般不同改,用的是gfortran编译器
$ make
在当前目录下会生成blas_LINUX.a, 这个是等下配hpl时候要填的,记一下文件路径,如/home/peter/linpack/BLAS/blas_LINUX.a
编译hpl
在/home/peter/linpack目录下
$ tar zxvf hpl.tgz # 生成hpl-2.1文件夹
在hpl-2.1/setup中选择合适的makefile,我当初选的是Make.Linux_PII_FBLAS,把它拷贝至hpl-2.1目录下,修改名字为Make.LinuxGeneric修改它。
修改字段:
ARCH = LinuxGeneric
TOPdir =/home/peter/linpack/hpl-2.1 #hpl解压目录
MPdir=/home/peter/mpich-install #mpich安装目录
LAlib=/home/peter/linpack/BLAS/blas_LINUX.a #blas编译出来的文件
CC=/home/peter/mpich-install/bin/mpicc
LINKER=/home/peter/mpich-install/bin/mpif77
$ make arch=LinuxGeneric
在hpl-2.1/bin/LinuxGeneric下会有两个文件xxx.dat和xhpl
运行
在LinuxGeneric目录下
$ mpirun -np 4 ./xhpl
或者
创建文件file,内容
IPAdress:2
$ mpiexec -n 10 -f file ./xhpl