Molpro 2010.1 PL20并行编译(二):千兆网络

来源:互联网 发布:被男友强啪的经验知乎 编辑:程序博客网 时间:2024/05/18 04:30
在没有InfiniBand网络而只有千兆网络的情况下,跨节点并行已经没有任何必要,其编译过程与有InfiniBand网络的类似,只需要在编译ga库的时候去掉--with-openib,而在编译的molpro的时候不加入-libverbs的链接参数即可。
PS:如果不想使用MPI,请将--with-mpi设置为no,即:--with-mpi=no

这里提供2种不同环境下的编译(不同的编译器、ga库、mpi以及数学库)。

1. intel编译器套件:intel编译器套件(icc、ifort 11.1.072,MKL 10.2.5.035,intelmpi 4.0.0.028,ga库5-0-2):

环境变量设置:source /home_soft/application/compiler/intel/ictce/4.0.0.020/ictvars.sh

解压ga库以及molpro源代码,进入ga库目录进行编译:
mkdir bld && cd bld
export BLAS_I8=yes
export BLAS_LIB="-L${MKLROOT}/lib/em64t -I${MKLROOT}/include -I${MKLROOT}/em64t/ilp64  -lmkl_blas95_ilp64 ${MKLROOT}/lib/em64t/libmkl_solver_ilp64_sequential.a -Wl,--start-group ${MKLROOT}/lib/em64t/libmkl_intel_ilp64.a ${MKLROOT}/lib/em64t/libmkl_sequential.a ${MKLROOT}/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread"

../configure --prefix=`pwd` --with-scalapack=no --enable-f77 F77=ifort CC=icc CXX=icpc --with-tcgmsg --with-mpi="/home_soft/application/compiler/intel/impi/4.0.0.028/intel64/lib -I/home_soft/application/compiler/intel/impi/4.0.0.028/intel64/include" --with-blas="-L${MKLROOT}/lib/em64t -I${MKLROOT}/include -I${MKLROOT}/em64t/ilp64  -lmkl_blas95_ilp64 ${MKLROOT}/lib/em64t/libmkl_solver_ilp64_sequential.a -Wl,--start-group ${MKLROOT}/lib/em64t/libmkl_intel_ilp64.a ${MKLROOT}/lib/em64t/libmkl_sequential.a ${MKLROOT}/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread" 2>&1 | tee configure.log

make -j 8 2>&1 | tee make.log
make install


进入molpro目录进行编译:

./configure -x86_64 -i8 -icc -ifort -mpp -mppbase /home_soft/software/chem/molpro2010.1/build_impi/ga-5-0-2/bld -nohdf5

BLASLIB和LAPACK的设置,具体如何获得请参考前一篇日志:
BLASLIB=-L${MKLROOT}/lib/em64t -I${MKLROOT}/include -I${MKLROOT}/em64t/ilp64  -lmkl_blas95_ilp64 ${MKLROOT}/lib/em64t/libmkl_solver_ilp64_sequential.a -Wl,--start-group ${MKLROOT}/lib/em64t/libmkl_intel_ilp64.a ${MKLROOT}/lib/em64t/libmkl_sequential.a ${MKLROOT}/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread

LAPACKLIB=-L${MKLROOT}/lib/em64t -I${MKLROOT}/include -I${MKLROOT}/em64t/ilp64  -lmkl_lapack95_ilp64 ${MKLROOT}/lib/em64t/libmkl_solver_ilp64_sequential.a -Wl,--start-group ${MKLROOT}/lib/em64t/libmkl_intel_ilp64.a ${MKLROOT}/lib/em64t/libmkl_sequential.a ${MKLROOT}/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread


make -j 8 2>&1 | tee make.log
make install



2. 由于此环境的CPU为AMD CPU,因此采用了PGI编译器10.0,以及由gcc和pgf90编译的mpich2-1.3,数学库采用了PGI自带的ACML库,ga库为5-0-2版本:

设置环境变量:source /home_soft/dawning/application/env/mpich2-1.3-gcc_pgf90.rc (mpich2-1.3-gcc_pgf90.rc 这个是自己写的一个简单脚本,其中设置了PGI和MPICH的环境变量)

ga库编译:
mkdir bld && cd bld

export BLAS_I8=yes
export BLAS_LIB="-lacml_mv -lacml"              
#ACML库自带的BLAS库的链接参数,很简单

../configure --prefix=`pwd` --enable-f77 F77=pgf90 CC=gcc CXX=g++ --with-tcgmsg --with-mpi="-L/home_soft/dawning/application/mpi/mpich2-1.3/gcc_pgf90/lib -lmpichf90 -lmpichf90 -lmpich -lopa -lmpl -lrt -lpthread -I/home_soft/dawning/application/mpi/mpich2-1.3/gcc_pgf90/include" --with-blas8="-lacml_mv -lacml" 2>&1 | tee configure.log
# --with-mpi的链接参数由mpif90 -link-info命令获得

make -j 8 2>&1 | tee make.log
make install

molpro编译:
./configure -x86_64 -i8 -pgcc -pgf90 -mpp -mppbase /home_soft/software/chem/molpro2010.1/build_pgi/ga-5-0-2/bld -nohdf5
BLASLIB="-lacml_mv -lacml"
LAPACKLIB="-lacml_mv -lacml"

make -j 8 2>&1 | tee make.log
make MOLPRO_OPTIONS="-n 2" quicktest
make install


注意:mppbase指向的是ga库的编译目录,而不是安装目录,molpro的configure会自动从编译目录找到安装目录。

这两篇日志所涉及的编译全部为64位环境,32位环境的可以自己参照修改即可。