Linpack测试环境的搭建

来源:互联网 发布:电子网络发票下载流程 编辑:程序博客网 时间:2024/05/21 01:57
Linpack测试方法


一.编译器


  安装gcc。


二.并行环境MPI的建立(MPI的使用需要用到Python)


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


(1)更改/etc/hosts文件


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


  127.0.0.1 localhost.localdomain localhost


  node01的IP scc-m


  node01的IP node01


  node02的IP node02


  node03的IP node03


  node04的IP node04


  具体实施:


  127.0.0.1       localhost.localdomain   localhost


  202.117.49.128  scc-m


  202.117.49.128  abc             abc


  202.117.49.129  xyz             xyz


(2)在node01生成SSH秘钥对


  #ssh-keygen -t rsa      //一路回车即可产生.ssh文件


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


(3)进入.ssh目录


  #cd .ssh


(4)生成authorized_keys文件


  #cp id_rsa.pub authorized_keys 


(5)退出到root目录


  #cd ..


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


  #ssh node01     按提示输入yes(三个字母要打全)


(7)设置node02(node02的root目录下)


  #ssh-keygen -t rsa     生成.ssh文件夹       //注意不要多键入空格


  #scp node01的IP:/root/.ssh/* /root/.ssh    拷贝node01上的.ssh文件夹覆盖本地的


  #scp node01的IP:/etc/hosts /etc/hosts      拷贝node01上的hosts文件覆盖本地的


  #ssh node01  提示处输入yes回车


  设置node03,node04的方法与node02相同


  具体实施:


  #scp 202.117.49.128:/root/.ssh/* /root/.ssh //注意不要多键入空格


  #scp 202.117.49.128:/etc/hosts /etc/hosts


(8)确认四台机器的信任连接已建立


   对每个节点执行:


  #ssh node01


  #ssh node02


  #ssh node03


  #ssh node04


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


2.安装MPICH2(在每个节点root目录下,而且所以节点上的目录一模一样)


(1)解压缩


  #tar -zxvf mpich2-1.0.7.tar.gz


  或者 #gunzip -c mpich2-1.0.7.tar.gz|tar xf mpich2-1.0.7.tar


(2)创建安装目录


  #mkdir /usr/MPICH-instsll


(3)进入mpich2解压目录


  #cd mpich2-1.0.7


(4)设置安装目录


  #./configure --prefix=/usr/MPICH-install


(5)编译


  #make


(6)安装


  #make install


(7)退出到root目录


  #cd ..


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


  #vi .bashrc


    修改后的.bashrc文件如下:


   # .bashrc


   # User specific aliases and functions 


 alias rm='rm -i'


 alias cp='cp -i'


 alias mv='mv -i'


   PATH="$PATH:/usr/MPICH-install/bin"   新增加的


   #Source global definitions


 if [ -f /etc/bashrc ]; then


  . /etc/bashrc


 fi


(9)测试环境变量设置


  #which mpd


  #which mpicc


#which mpiexec


#which mpirun


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


  #vi /etc/mpd.conf


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


  #touch /etc/mpd.conf


  #chmod 600 /etc/mpd.conf


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


  #vi mpd.hosts


  文件内容如下:


node01


node02


node03


node04


3.测试


(1)本地测试


  #mpd &    启动 


  #mpdtrace 观看启动机器


  #mpdallexit 退出


(2)通过mpd.hosts运行集群系统


  #mpdboot -n number -f mpd.hosts        number为要起动的机器个数


  #mpdtrace


  #mpdallexit


(3)测试运行MPICH的例子程序


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


  #mpiexec -n number /usr/MPICH-install/examples/cpi     number为使用的进程数


  #mpdallexit


(4)如果测试不能通过,请进行第四步


4.问题解决


(1)通过mpdcheck获得一写帮助信息


  #mpdcheck –pc


(2)查错


  #mpdcheck -l


(3)通过mpd.hosts文件查错


  #mpdcheck -f mpd.hosts  如果无错误


  #mpdcheck -f mpd.hosts  -ssh


(4)如果上述无错误,可略过此步


  对任意两台机器进行查错


  m1: #mpdcheck -s  输出主机名host和端口port


  m2: #mpdcheck -c host port


  注意:以上四步都是在没有运行mpd的情况下进行的


(5)mpd查错


  m1: #mpd -e & 返回使用的端口


  m2: #mpd -h m1 -p echoed_port_m1 &


  


三.BLAS的安装


1.下载blas.tar和cblas.tar 。需要先安装blas,后安装cblas。


2. blas.tar解压缩后直接make,生成blas_LINUX.a静态库。


3. cblas.tar解压缩后,选择MakeFile.LINUX作为配置文件,另存为或者链接为MakeFile.inc。修改MakeFile.inc中的配置:


BLLIB 和 CBDIR 的路径。


第一个是 blas_LINUX.a 所在的路径。


BLLIB = /*/blas_LINUX.a


第二个是 CBLAS 解压的存放路径。


CBDIR = /*/CBLAS


最后执行make all,在/*/CBLAS/lib/LINUX里面生成cblas_LINUX.a


4. 我们所关注的就是这两个.a库文件的链接路径。


 


四.HPL的安装、编译与运行


1.从http://www.netlib.org/benchmark/hpl/software.html下载"hpl.tgz";


2.tar -xzvf hpl.tar    //创建一个"hpl"目录


3.进入/hpl/setup目录,选择一个合适的make文件“Make.Linux_PII_CBLAS”,并将其拷贝到/hpl目录下


4.修改该文件


  ARCH    = Linux_PII_CBLAS       //必须与文件名Make.<arch>中的<arch>一致


  TOPdir  = /usr/local/hpl            //指明hpl程序的源文件目录


  MPdir   = /usr/MPICH-install        //指明MPI的安装目录


  LAdir   = /*/BLAS   //BLAS或VSIPL库所在目录


  LAlib   = /*/CBLAS/lib/LINUX/cblas_LINUX.a  /*/BLAS/blas_LINUX.a (注意这两个库链接的先后顺序)


  CC      = /usr/local/mpich2/bin/mpicc      


  CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops –lpthread //CC的配置


  LINKER  = /usr/local/mpich2/bin/mpif77


5.编译


  make arch=Linux_PII_CBLAS


6.运行


(1)修改配置文件/usr/local/hpl/bin/Linux_PII_CBLAS/HPL.dat


  仅修改了第4行,使之将结果输出至HPL.out


(2)运行


    好像必须在/usr/local/hpl/bin/Linux_PII_CBLAS下执行


  mpirun –np 4 /usr/local/hpl/bin/Linux_PII_CBLAS/xhpl   //使用相对路径时居然不行?


(3)查看结果


  vi HPL.out


************************************************************************


以下是附加的步骤三、四,更新了GotoBlas数学库和hpl2.0来进行LinPack测试


************************************************************************


附加三. GotoBlas的安装


1. 下载gotoBlas.tar.gz。我这里采用的是GotoBLAS-1.26.tar.gz


2. 解压缩,进入目录,根据你的机器是32位还是64位来执行


    ./quickbuild.32bit


3. 编辑Makefile.rule(我基本没有更改);更改getarch.c里面的archtecture,使之符合自己的机器


4. 执行 make


5. cd exports 执行make so (我的这一步没用通过,不过貌似不影响后面使用)


6. 生成一堆 .o .so .a文件,后面HPL用到的是libgoto.a和libgoto_penrynp-r1.26.a


 


附加四:hpl2.0的安装


1. 下载源码,解压缩


2. 进入目录,由于建立一个“Make.Linux_PII_GOTO”的文件,源码中没有这个类型现成的make文件,复制“Make.Linux_PII_CBLAS”中的内容到其中。


3. 主要修改以下几项:


ARCH    = Linux_PII_GOTO        //必须与文件名Make.<arch>中的<arch>一致


LAdir   = /*/GOTOBLAS   //GOTOBLAS库所在目录


LAlib   = /*/ GOTOBLAS /libgoto_penrynp-r1.26.a  /*/ GOTOBLAS /libgoto.a (注意这两个库链接的先后顺序)


4. 编译


make arch=Linux_PII_GOTO


5. 运行
0 0
原创粉丝点击