发信人: valenhou (VASP&TranSIESTAC), 信区: Gaussian
标 题: ifc和mpich并行编译vasp(个人经验)
发信站: BBS 大话西游站 (Sat Jul 24 13:41:36 2004), 站内
我是在Redhat 7.3 和8.0的机器上,用ifc 6.01版本,mpich-1.2.5.2,编译vasp4.6版本。
BLAS:采用libgoto_p4_512-r0.94.so
LAPACK:采用vasp.4.lib中的lapack_double.o
大致步骤如下:
这里不再讲述ifc的安装,假设ifc已经安装好了。
1、下载mpich-1.2.5.2,并安装。
从
500){this.resized=true;this.style.width=500;}" align=absMiddle border=0>下载。
使用命令tar xzvf mpich.tar.gz 来解压它。
得到mpich-1.2.5.2目录。
进入该目录,以此使用下面的命令:
a) ./configure --prefix=/usr/local/mpich -rsh=ssh --with-cflags=-O
-f90="ifc -FR -lowercase" --with-f77flags=-O --without-romio -fc=ifc
b) make
c)改用root帐号,进入改目录进行安装。
make install
则把mpich安装到/usr/local/mpich目录。
2、设置与mpich有关的环境变量
在主目录下把下面的几行加入.bash_profile文件中
export PATH=$PATH:/usr/local/mpich/bin
export MPI_USEP4SSPORT=yes
export MPI_P4SSPORT=22
export P4_RSHCOMMAND=ssh
然后采用下面的命令更新该文件
. .bash_profile或source .bash_profile
3、采用mpif90来编译vasp
这里假设把libgoto_p4_512-r0.94.so放在/usr/local/lib目录中。
a)进入vasp.4.lib目录中,把 makefile.linux_ifc_P4 拷贝成makefile。
键入make命令,开始编译得到libdmy.a
b)进入vasp.4.6目录中,把makefile.linux_ifc_P4拷贝成makefile
把第50行的FC=ifc前加上注释号,也就是#
第80行至82行的CPP有关内容加上注释号,改成下面的
#CPP = $(CPP_) -DHOST="LinuxIFC"
# -Dkind8 -DNGXhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc
# -DRPROMU_DGEMV -DRACCMU_DGEMV
把第136行的BLAS
BLAS= /opt/libs/libgoto/libgoto_p4_512-r0.6.so
该成如下的内容:
BLAS= /usr/local/lib/libgoto_p4_512-r0.94.so
把第166行和167行有关FFT3D的行前加上注释号,如下面的
#FFT3D = fft3dfurth.o fft3dlib.o
#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a
把202行和203行的FC等改为如下的内容:
FC=mpif90
FCL=$(FC)
把212行有关CPP的行前的注释号去掉,改成如下的内容:
CPP = $(CPP_) -DMPI -DHOST="LinuxIFC" -DIFC
-Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc
-DMPI_BLOCK=500
-DRPROMU_DGEMV -DRACCMU_DGEMV
把226和227行有关SCA的行,加上注释号,改成如下的
#SCA= $(SCA_)/libscalapack.a
#$(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacs F77init_MPI-LINUX-0.a
表示不用scalapack库。
把239和243行有关FFT3D的行,改成如下的内容:
# FFT: fftmpi.o with fft3dlib of Juergen Furthmueller
FFT3D = fftmpi.o fftmpi_map.o fft3dlib.o
# fftw.3.0.1 is slighly faster and should be used if available
#FFT3D = fftmpiw.o fftmpi_map.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a
把这些都修改后,保存。
再make。就好了。