经过几天的摸索,我和任志刚终于试验出了PETSc的配置方法,申明一下,我们本来一无所知,所有这些东西基本上都来自网络,我们只是验证了网上的东西正确性,作了一些小小的改动。
学习PETSc首先看其“PETSc Users Manual”,这里还有一个PETSc的介绍“PETSc并行程序设计方法”,因为是中文的,看起来要轻松些。热切和大家一起学习,共同进步。要安装PETSc,首先要配置好MPI并行环境和BLAS及LAPACK,因此我们分三步来介绍PETSc的安装配置。
一、Linux下MPICH2集群系统安装手册(采用建立信任ssh)
软件下载:
确保你有一个MPICH2较新版本的拷贝,下载地址:http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.6p1.tar.gz 下载mpich2-1.0.6p1.tar.gz,这个是LINUX下的版本。
并行环境建立:
l 创建SSH信任连接(在root目录下)
1、更改/etc/hosts文件
#gedit /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
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相同
8、确认四台机器的信任连接已建立
对每个节点执行:
#ssh node01
#ssh node02
#ssh node03
#ssh node04
在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)保证信任已经建立
l 安装MPICH2(在节点root目录下)
1、解压缩
#tar -zxvf mpich2-1.0.6p1.tar.gz
或者 #gunzip -c mpich2-1.0.1.tar.gz|tar xf mpich2-1.0.6p1.tar.gz
2、创建安装目录
#mkdir /usr/MPICH-instsll
3、进入mpich2解压目录
#cd mpich2-1.0.6p1
4、设置安装目录
#./configure --prefix=/usr/MPICH-install
5、编译
#make
6、安装
#make install
7、退出到root目录
#cd ..
8、通过编辑.bashrc文件修改环境变量
#gedit .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
保存,推出,然后输入命令
#source .bashrc (使得刚修改的 .bashrc文件生效)
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
#gedit mpd.hosts
文件内容如下:
node01
node02
node03
node04
l 测试
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、如果测试不能通过,请进行第四步
l 问题解决
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 &
注意:请保证防火墙已经关闭
以上测试通过,集群系统就建成了。
二、LAPACK安装
软件下载:
确保有一个lapack的copy,lapack下面有BALS(三个level都有),所以只用下载lapack。下载地址:ftp://netlib.org/lapack 下载文件:lapack-3.1.1.tgz。netlib的ftp服务器下面有很多资源,这里暂时只需要lapack-3.1.1.tgz。
安装步骤:
依次键入
1) gzip -cd lapack-3.1.1.tgz | tar xf - (解压文件)
2) cd lapack-3.1.1
3) cp make.inc.example make.inc
4) gedit make.inc (修改make.inc)
. . . . . . . . .
FORTRAN = g77
OPTS = -funroll-all-loops -O 3
DRVOPTS = $(OPTS)
NOOPT =
LOADER = g77
LOADOPTS =
. . . . . . . . .
修改成:
. . . . . . . . .
FORTRAN = gfortran
OPTS = -funroll-all-loops -O3 -msse2 -mfpmath=sse -ftree-vectorize -g
DRVOPTS = $(OPTS)
NOOPT =
LOADER = gfortran
LOADOPTS =
. . . . . . . . .
保存
5) gedit Makefile (修改Makefile文件)
因为之前没安装blas:
include make.inc
all: lapack_install lib lapack_testing blas_testing
lib: lapacklib tmglib
#lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .
修改成:
include make.inc
all: lapack_install lib lapack_testing blas_testing
#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .保存
6) make
7) 复制blas_LINUX.a lapack_LINUX.a和tmglib_LINUX.a则三个文件到/usr/lib和/usr/local/lib两个文件夹中,并改名为:libblas.a liblapack.a和libtmglib.a
三、PETSc安装
软件下载:
下载最新的PETSc软件包,下载地址:http://www-unix.mcs.anl.gov/petsc/petsc-2/download/index.html 他更新挺快。
安装步骤:
假设你将下载的petsc软件包放在 /home/username/soft 文件夹下面(username是指你的用户名)。
(1) cd /home/username/soft
(2) gunzip -c petsc-2.3.3.tar.gz | tar -xof - (解压软件包,petsc-2.3.3.tar.gz是指你下载的软件包的名字,不一定相同,解压后的docs文件夹里有manual.pdf这个帮助文件)
(3) cd petsc-2.3.3-p0 (进入到你刚解压的软件包的目录下)
(4) PETSC_DIR=$PWD; export PETSC_DIR
(5) ./config/configure.py --with-cc=gcc --with-fc=g77 --with-cxx=g++ --with-blas-lapack-dir= /usr/local/lib --with-mpi-dir=/usr/MPICH-install --with-scalar-type=complex --with-clanguage= cxx --with-pic=0 (等号前后都没有空格)
(6) make
(7) make test
由长相思整理
zlsxiaxia 于 2009-09-16 22:13:47发表:
呵呵楼主我现在正在做关于这方面得东西,你可不可以把LAPACK和PETSc软件啊,我的QQ是:390358101