在使用Job Scheduler的机群(Cluster)系统上安装PETSC和SLEPC

最近在学习使用超算,主要用来做SVD相关的计算,需要用到SLEPC库,这个库依赖于PETSC库。在深圳的曙光6000上没有装这两个库,所以自己摸索着装了一下,下面是具体步骤。实验环境为曙光6000超算系统,OpenMPI-1.4,intel MKL, intel 64 架构

1 源代码(source)

PETSC

SLEPC

下载最新版即可

2 PETSC安装

通常情况下PETSC安装分为两步,即configure和make。但是对于使用job scheduler的cluster来说,configure的步骤要复杂一些。下面一一介绍

A. Configure步骤

下载代码之后用tar命令解包,然后进入包含源代码的路径,使用chmod命令将config目录下所有文件赋予X权限,我们假设为 /LIB/PATH,运行以下bash命令

export PETSC_DIR=/LIB/PATH
./configure --with-batch --with-cc=mpicc  --with-cxx=mpicxx --with-fc=mpif90 --with-blas-lapack-dir="intel mkl path" --with-mpi-include="mpi include path" --with-mpi-lib="mpi lib path" --known-mpi-shared-libraries=0

其中configure参数要注意的主要是几个依赖库的位置,这里intemkl包含了lapack和blas,mpi则视系统安装版本。特别注意的是好像系统不能自动发现mpi的安装位置,需要专门指出。此外,–with-batch指明我们使用的是batch类系统,需要额外操作来完成设置。

然后,若configure运行完成会生成一个二进制文件名字叫conftest-***|||的,这就是job scheduler系统和一般工作站的区别,这是我们需要向系统提交一个单核的job来运行这个二进制文件。在曙光6000上,job描述如下:

APP_NAME="intelg_small"
NP=1
RUN=$PETSC_DIR+"/conftest-arch-linux2-c-debug"

运行完以后会在路径下生成一个reconfigure-***|||.py的文件,运行之,就可以完成configure了。

B. Make步骤

Make的步骤相对简单,设置好$PETSC_DIR和$PETSC_ARCH变量,运行

make all

就可以了。这样就完成PETSC的安装。需要注意的是,安装完成后的test工作也要写成job的形式提交。

3 SLEPC安装

装好PETSC之后,SLEPC安装就快多了,一样的下载代码解压后进入路径,使用chmod命令将config目录下所有文件赋予X权限。设置好$PETSC_DIR和$PETSC_ARCH 变量之后,运行

./configure

然后按提示运行

 make SLEPC_DIR=$PWD PETSC_DIR=$PETSC_DIR PETSC_ARCH=$PETSC_ARCH

就完成了安装。一样的,test也要使用job的方式提交。

SLEPC的使用待续