红联Linux门户
Linux帮助

Linux环境下PETSc安装配置

发布时间:2008-03-23 22:55:22来源:红联作者:Smilies
经过几天的摸索,我和任志刚终于试验出了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

由长相思整理
文章评论

共有 1 条评论

  1. zlsxiaxia 于 2009-09-16 22:13:47发表:

    呵呵楼主我现在正在做关于这方面得东西,你可不可以把LAPACK和PETSc软件啊,我的QQ是:390358101