Build PETSC with intel compiler and mkl
1、首先,这里使用的平台是Centos6.5。 其次,我们认为大家已经安装好了intel compiler cluster edition(2015),下载并解压好了petsc对应的版本。
2、检查设置好了intel编译器的环境变量。
使用which命令检查ifort,icc,mpiicc,mpiicpc,mpiifort的存在于默认的PATH中。
使用“echo ${MKLROOT}”,检查正常设置了intel mkl 库的环境变量。
1、petsc 依赖于blas/lapack库,intel mkl 提供了两种不同的使用方式——串行和openmp两种。读者可以根据自身的情况选择。对于这里我们提到的程序本身是mpi的并行程序,推荐使用串行(sequential)的库编译。
2、进入解压好的 PETSC 2.3.3 的目录
3、依赖于串行库的编译(Blas/lapack sequential)
./config/configure.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_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 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm -qopenmp"
1、对于高版本的PETSC, 其设置程序里面已经有对新版intel mkl的自动识别,不需要做特别的配置。
2、进入解压好的petsc 3.6.3 源代码的目录
3、编译
./configure PETSC_ARCH=linux-gnu-intel --prefix=/opt/petsc/petsc-3.6-impi --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-blas-lapack-dir=${MKLROOT}/lib/intel64