Build PETSC with intel compiler and mkl

时间:2024-10-12 13:43:09

Fvcom 是一款非常流行的海洋水动力开源计算软件,但很多初学者在编译该软件时遇到一些障碍,尤其是对使用隐式格式计算时的依赖——PETSC,和现有的Intel编译器和intel mkl 库联合使用比较陌生。这里我们为大家展现一下编译PETSC的步骤。

工具/原料

Petsc(2.3, 3.6.3)

intel cluster edition (2015)

Linux(centos)

前提/准备

1、首先,这里使用的平台是Centos6.5。 其次,我们认为大家已经安装好了intel compiler cluster edition(2015),下载并解压好了petsc对应的版本。

2、检查设置好了intel编译器的环境变量。使用which命令检查ifort,icc,mpiicc,mpiicpc,mpiifort的存在于默认的PATH中。使用“echo ${MKLROOT}”,检查正常设置了intel mkl 库的环境变量。

编译老版本的版本PETSC(2.3.3)

1、petsc 依赖于blas/lapack库,intel mkl 提供了两种不同的使用方式——串行和openmp两种。读者可以根据自身的情况选择。对于这里我们提到的程序本身是mpi的并行程序,推荐使用串行(sequential)的库编译。

2、进入解压好的 PETSC 2.3.3 的目录

3、依赖于串行库的编译(Blas/lapack sequential)./config/configur髫潋啜缅e.py PETSC_ARCH=linux-gnu-intel --prefix=/opt/petsc/petsc-2.3 --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-blas-lapack-lib="-L${MKLROOT}/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm "

4、依赖于openmp并行库的编译(Blas/lapack with openmp)./config/configure.py PETSC_A伊怕锱鳏RCH=linux-gnu-intel --prefix=/opt/petsc/petsc-2.3 --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-blas-lapack-lib="-L${MKLROOT}/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm -qopenmp"

编译新版本的PETSC(3.6.3)

1、对于高版本的PETSC, 其设置程序里面已经有对新版intel mkl的自动识别,不需要做特别的配置。

2、进入解压好的petsc 3.6.3 源代码的目录

3、编译./configure PETSC_ARCH=linux-gnu-inte盟敢势袂l --prefix=/opt/petsc/petsc-3.6-impi --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-blas-lapack-dir=${MKLROOT}/lib/intel64

© 手抄报圈