vasp编译
初学VASP(七)VASP程序的编译
![初学VASP(七)VASP程序的编译](https://img.taocdn.com/s3/m/35cb46ef9b89680203d8255f.png)
初学VASP(七) VASP程序的编译下面以编译VASP4.4.5版本为例,编译更新的版本VASP4.5.5、VASP4.6和VASP5.0(即将发布)的步骤与此相同。
1、所需文件和程序VASP源代码:vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz数学库:LAPACK和BLAS (/,或mkl(配合intel的fotran编译器用),或ATLAS (/或Lib GOTO (/users/flame/goto/Fortran编译器:PGI fortran 至少4.0以上版本(/,或Intel的 ifc (8.0以上版本是ifort,/software/products/compilers/flin/,前者可以从网站上下载到15天的试用版本,后者可以从网站下载到免费的版本。
2、下面采用PGI fortan编译器pgf90、ATLAS数学库对VASP4.4.5进行编译这里假定已经安装好了fortran编译器,所有文件都放在/home/xxxx/VASP_SRC目录下,机器的操作系统是Linux: Redhat9.0。
a) 从/下载atlas3.6.0_Linux_P4SSE2.tar.gz,并用如下命令解压:tar xzvf atlas3.6.0_Linux_P4SSE2.tar.gz解压后得到一个目录Linux_P4SSE2,在此目录下有个lib子目录,该lib子目录中的文件为libatlas.a, libcblas.a, libf77blas.a, liblapack.a, 这些就是编译vasp时所需要的数学库文件之一。
b) 用如下命令解压vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz:tar xzvf vasp.4.4.5.tar.gztar xzvf vasp.4.lib.tar.gz解压后分别得到目录vasp.4.4和vasp.4.lib,目录vasp.4.4中文件是vasp的主要源代码,vasp.4.lib是编译vasp时需要的一些特定的数学库程序,在这两个目录中都有编译时所用的makefile文件,针对机器和fortran编译器,选择相应的makefile。
初学VASP(七)VASP程序的编译
![初学VASP(七)VASP程序的编译](https://img.taocdn.com/s3/m/35cb46ef9b89680203d8255f.png)
初学VASP(七) VASP程序的编译下面以编译VASP4.4.5版本为例,编译更新的版本VASP4.5.5、VASP4.6和VASP5.0(即将发布)的步骤与此相同。
1、所需文件和程序VASP源代码:vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz数学库:LAPACK和BLAS (/,或mkl(配合intel的fotran编译器用),或ATLAS (/或Lib GOTO (/users/flame/goto/Fortran编译器:PGI fortran 至少4.0以上版本(/,或Intel的 ifc (8.0以上版本是ifort,/software/products/compilers/flin/,前者可以从网站上下载到15天的试用版本,后者可以从网站下载到免费的版本。
2、下面采用PGI fortan编译器pgf90、ATLAS数学库对VASP4.4.5进行编译这里假定已经安装好了fortran编译器,所有文件都放在/home/xxxx/VASP_SRC目录下,机器的操作系统是Linux: Redhat9.0。
a) 从/下载atlas3.6.0_Linux_P4SSE2.tar.gz,并用如下命令解压:tar xzvf atlas3.6.0_Linux_P4SSE2.tar.gz解压后得到一个目录Linux_P4SSE2,在此目录下有个lib子目录,该lib子目录中的文件为libatlas.a, libcblas.a, libf77blas.a, liblapack.a, 这些就是编译vasp时所需要的数学库文件之一。
b) 用如下命令解压vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz:tar xzvf vasp.4.4.5.tar.gztar xzvf vasp.4.lib.tar.gz解压后分别得到目录vasp.4.4和vasp.4.lib,目录vasp.4.4中文件是vasp的主要源代码,vasp.4.lib是编译vasp时需要的一些特定的数学库程序,在这两个目录中都有编译时所用的makefile文件,针对机器和fortran编译器,选择相应的makefile。
VASP5.4编译过程说明
![VASP5.4编译过程说明](https://img.taocdn.com/s3/m/6bfa0d667fd5360cba1adb76.png)
V ASP5.4编译1.编译器安装:parallel_studio_xe_2011_sp1_update2_intel64.tgz解压安装即可,./install.sh:安装中使用的激活码为L3FN-2VRGKX7K安装完设置环境变量:For csh/tcsh:$ source install-dir/bin/compilervars.csh intel64For bash:$ source install-dir/bin/compilervars.sh intel64测试是否成功:which icc/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/iccwhich ifort/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort2.安装openmpi:openmpi-1.4.5.tar.gz解压,然后输入./configure CC=icc CXX=icpc F77=ifort FC=ifort 指定编译器之后依次执行make,make install安装完成后,加入如下三个环境变量:export PATH=/usr/local/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/lib/openmpi:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH具体路径找自己的,其中少了第三个路径的话可以编译文件,但是运行编译后的文件会说找不到库函数。
建议安装完成之后进入解压文件夹(不是安装目录)下的example文件夹中测试程序,输入make之后会自动编译,完成之后输入mpirun –np 8 hello_f90,如果安装正确,会出现:Hello, world, I am 0 of 8Hello, world, I am 1 of 8Hello, world, I am 2 of 8Hello, world, I am 3 of 8Hello, world, I am 4 of 8Hello, world, I am 5 of 8Hello, world, I am 6 of 8Hello, world, I am 7 of 88是服务器的cpu数量。
VASP5.4编译过程说明
![VASP5.4编译过程说明](https://img.taocdn.com/s3/m/e0a5df4e59fafab069dc5022aaea998fcc22408a.png)
VASP5.4编译过程说明V ASP5.4编译1.编译器安装:parallel_studio_xe_2011_sp1_update2_intel64.tgz解压安装即可,./install.sh:安装中使用的激活码为L3FN-2VRGKX7K安装完设置环境变量:For csh/tcsh:$ source install-dir/bin/compilervars.csh intel64For bash:$ source install-dir/bin/compilervars.sh intel64测试是否成功:which icc/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/iccwhich ifort/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort2.安装openmpi:openmpi-1.4.5.tar.gz解压,然后输入./configure CC=icc CXX=icpc F77=ifort FC=ifort 指定编译器之后依次执行make,make install安装完成后,加入如下三个环境变量:export PATH=/usr/local/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/lib/openmpi:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 具体路径找自己的,其中少了第三个路径的话可以编译文件,但是运行编译后的文件会说找不到库函数。
建议安装完成之后进入解压文件夹(不是安装目录)下的example文件夹中测试程序,输入make之后会自动编译,完成之后输入mpirun –np 8 hello_f90,如果安装正确,会出现:Hello, world, I am 0 of 8Hello, world, I am 1 of 8Hello, world, I am 2 of 8Hello, world, I am 3 of 8Hello, world, I am 4 of 8Hello, world, I am 5 of 8Hello, world, I am 6 of 8Hello, world, I am 7 of 88是服务器的cpu数量。
vasp简易说明
![vasp简易说明](https://img.taocdn.com/s3/m/c6271b03640e52ea551810a6f524ccbff121cad4.png)
vasp简易说明3, Xming用gnuplot是gnu文件里面要加pause -14,INCAR 字符太长,vasp_lib里面要改drdatab.F文件,255改大,重新编译5 声子谱:phononp –d –dim=”3 3 1”6 vasp编译gama版本的:在第二个CPP加上-DwNGZhalf就行。
7 ISMEAR=-5,电荷密度和DOS之类的电子结构和总能准,但是算力不准,所以对于算声子谱,最好不用-5。
对于金属,声子谱一般用DFPT会更准。
对于半导体和绝缘体,不能用ISEMAR>0的,只能是-5或者0.对于金属,ISMEAR=1,sigma=0.28 DFPT不能用NPAR phonopy -d --dim="2 2 2" -c POSCAR-unitcellmv SPOSCAR POSCAR静态计算:IBRION=8,IALGO=38对于金属ISMEAR=1,sigma=0.2phonopy --fc vasprun.xmlband.conf里面要添加:FORCE_CONSTANTS = READphonopy -p -c POSCAR-unitcell band.conf一般来说,对于金属,或者窄能隙半导体,如果用位移法,则需要很大的胞才能算准,但是用DFPT则可以小包算准。
对于金属,PBE 可能更好点。
9, 如果体系较大,EDIFF达到停止计算,很可能是K点取太多,内存不够。
10, bandplot --gnuplot band.yaml >> phon.dat,用origin做声子谱11,画 CBM和VBM的partial charge,读入静态的WAVECAR,进行处理,此时要设置INCAR,LPARD = .TRUE. 开关IBAND = 480 481 VBM CBMNBMOD = 1 默认KPUSE = 1 第几个K点LSEPB = .TRUE. vasp查LSEPK = .TRUE.12,算极化:铁电相和顺电相都要算,每一个相算三次。
VASP5.4.4编译
![VASP5.4.4编译](https://img.taocdn.com/s3/m/c9cf4016e97101f69e3143323968011ca300f7cd.png)
VASP5.4.4编译之前根据sobereva⽼师的视频写过名为的随笔,笔者亲⾃实践过,编译的也没问题,测试作业也正常,但是后来发现这样编译的vasp仍有问题,运⾏内存会不断增长,⼤概半⼩时后,mem到达了最⼤值,然后使⽤swap继续增长,mem和swap全⽤光了之后,作业直接断掉。
于是乎笔者使⽤较新的编译器(parallel_studio_xe_2020_update4_cluster_edition)试了⼀下,并参考了的makefile.include 以及使⽤了fftw,这样编译出来的vasp⽬前没出现问题。
parallel_studio_xe的安装同,然后将. /opt/intel/parallel_studio_xe_2020.4.912/psxevars.sh加⼊ /etc/profile 后重启终端,出现了Intel(R) Parallel Studio XE 2020 Update 4for Linux*Copyright 2009-2020 Intel Corporation.然后which icc ifort icpc mpiifort发现都能找的到,开始编译fftw,此处为 fftw-3.3.9./configure -prefix=/opt/fftw339 CC=icc F77=ifort MPICC=mpiicc -enable-mpimakemake install最后进⾏vasp编译,在此列出我的makefile.include供参考# Precompiler optionsCPP_OPTIONS= -DHOST=\"LinuxIFC\"\-DMPI -DMPI_BLOCK=8000 \-Duse_collective \-DscaLAPACK \-DCACHE_SIZE=4000 \-Davoidalloc \-Duse_bse_te \-Dtbdyn \-Duse_shmem\-DlibbeefCPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)FC = mpiifortFCL = mpiifort -mklFREE = -free -names lowercaseFFLAGS = -assume byterecl -w -heap-arrays 64OFLAG = -O2 -xhostOFLAG_IN = $(OFLAG)DEBUG = -O0MKL_PATH = /opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64/BLAS =-L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64LAPACK =BLACS =SCALAPACK =OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o /opt/fftw339/lib/libfftw3_mpi.aINCS =-I/opt/fftw339/includeBEEF = -L/home/zhu/software/beef/lib -lbeefLLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) $(BEEF)OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.oOBJECTS_O2 += fft3dlib.o# For what used to be vasp.5.libCPP_LIB = $(CPP)FC_LIB = $(FC)CC_LIB = iccCFLAGS_LIB = -OFFLAGS_LIB = -O1FREE_LIB = $(FREE)OBJECTS_LIB= linpack_double.o getshmem.o# For the parser libraryCXX_PARS = icpcLIBS += parserLLIBS += -Lparser -lparser -lstdc++# Normally no need to change thisSRCDIR = ../../srcBINDIR = ../../bin#================================================# GPU StuffCPP_GPU = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK OBJECTS_GPU = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.oCC = iccCXX = icpcCFLAGS = -fPIC -DADD_ -Wall -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS CUDA_ROOT ?= /usr/local/cuda/NVCC := $(CUDA_ROOT)/bin/nvcc -ccbin=iccCUDA_LIB := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublasGENCODE_ARCH := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \-gencode=arch=compute_35,code=\"sm_35,compute_35\" \-gencode=arch=compute_60,code=\"sm_60,compute_60\"MPI_INC = $(I_MPI_ROOT)/include64/PS:笔者控制变量,将PSXE2020换成PSXE2019,还是会出现之前的问题,并没有测试使⽤fftw与否的影响。
vasp.5.2编译过程
![vasp.5.2编译过程](https://img.taocdn.com/s3/m/90d3d5255727a5e9856a61bf.png)
Vasp.5.2编译⒈正常安装ifort编辑器(如vasp.4.6安装过程)修改环境变量# .bashrc# User specific aliases and functions# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrc#IFORT=/home/usr1/intel/PATH="/home/usr1/intel/fce/9.0/bin":${PATH}PATH="/home/usr1/intel/idbe/9.0/bin":${PATH}export PATHMANPATH="/home/usr1/intel/fce/9.0/man":${MANPATH}MANPATH="/home/usr1/intel/idbe/9.0/man":${MANPATH}export MANPATHLD_LIBRARY_PATH="/home/usr1/intel/fce/9.0/lib":${LD_LIBRARY_PATH}export LD_LIBRARY_PATH#INTEL_LICENSE_FILE="/home/usr1/intel/licenses":$INTEL_LICENSE_FILEexport INTEL_LICENSE_FILE#fi⒉安装mkl⑴过程如vasp.4.6的过程⑵编译mkl的FFTW函数库:进入到opt/intel/mkl/xxxx/interfaces/fftw3xf(默认安装)的路径,在root权限下在终端键入make libem64t compiler=intel。
加入环境变量# .bashrc# User specific aliases and functions# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcLD_LIBRARY_PATH="/opt/intel/mkl/10.0.1.014/lib/em64t":${LD_LIBRARY_PATH}INCLUDE="/opt/intel/mkl/10.0.1.014/include":${INCLUDE}export INCLUDE#fi⒊安装openmpi⑴解压文件,在终端中进入openmpi-xxxx(代表版本)的目录。
VASP编译
![VASP编译](https://img.taocdn.com/s3/m/66faf6c484254b35effd340c.png)
1、解压文件:
[root@yanshanwenbin* opt] tar jxvf Filename.tar.bz2
2.进入openmpi解压文件夹
[root@yanshanwe opt]: cd openmpi-1.6.5
3.安装前的配置问题。需要配置一个安装路径以及编译的程序。
export PATH=/opt/intel/impi/4.1.1.036/include64:$PATH
#source /etc/profile.d/paths.sh
!!!!!!到此VASP需要的文件安装完成##########
四.VASP编译
1.VASP.5.l的都是最新版本
在下载过程中提供邮箱获取序列号,从2011版ifort编译器开始已经自带MKL数学库,因此不需要在另外安装MKL数学库
一.ifort安装
1.下载ifort编译器(Intel非商业版)l_fcompxe_2013.4.183.tgz
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013.4.183/mkl/lib/intel64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013.4.183/compiler/lib/intel64/:$LD_LIBRARY_PATH
############makefile####################################
.SUFFIXES: .inc .f .F
#-----------------------------------------------------------------------
debianlinux并行编译vasp4.6
![debianlinux并行编译vasp4.6](https://img.taocdn.com/s3/m/9fba0b98970590c69ec3d5bbfd0a79563c1ed4ec.png)
debianlinux并行编译vasp4.6花了一天时间搞定debian并行编译vasp4.6,记下心得,供盟友指正也留以后备用。
单机4核,系统:debian linux 6.0 内核 2.6.32-5-686;编译器:l_cprof_p_11.1.073;数学库:intel mkl;并行软件:mpich2-1.4.1p1;傅里叶变换:libfftw3-dev libfftw3-doc;1. Install the ' build-essential' 'gfortran' software package# apt-install build-essential !autoinstall the build-essental, which have the command 'make,make clean, gfortran, f95' and so on.2. Install the intell Compiler (ifort)down load the correspnding pakage 'l_cprof_p_11.1.073.tgz' # tar xzvf l_cprof_p_11.1.073.tgzbut because the debian 5.0 own the gbilc library 'slibstdc++6' so the installation will display 'libstdc++.so.5: didn't find ' and break down,so# apt-get install libstdc++53. seting the envionment variables# vi ~/.bashrc and input the contents:GDK_NATIVE_WINDOWS=1source /opt/intel/Compiler/11.1/073/bin/ia32/ifortvars_ia32. shget out and save it;# vi /etc/profile and add:source /opt/intel/Compiler/11.1/073/bin/ifortvars.sh ia32get out and save it.! this source can run vasp in every usr.4. Install the MPI parallel environmentDownload the mpich2 source package from :/doc/f513657145.html,/research/proj ects/mpich2/downloads/index.php?s=downloads obtain the package 'mpich2-1.4.1p1.tar.gz'# tar xzvf mpich2-1.4.1p1.tar.gz# cd mpi*# env CC="gcc" C++="g++" F90="ifort" FC="ifort"# ./configure --prefix=/usr/local/mpich2-1.4.1p1/# make# make install# vi ~/.bashrc and add:PATH=/usr/local/mpich2-1.4.1p1./bin:$PATHexport PATHsave .bashrc and#source ~/.bashrcand check the mpi:# which mpif90# which mpirun# which mpiexec5. Install the fftw library# aptitude install libfftw3-dev libfftw3-doc! this can obtain a file 'libfftw3.a' in /usr/lib6. install vaspprepeare the vasp.4.6.tar.gz and vasp.4.lib.tar.gz and decompress it with tar xzvf # tar xzvf vasp.4.6.tar.gz# tar xzvf vasp.4.lib.tar.gz6.1 Go intothe vasp.4.lib/ and choose the makefile.linux_ifc_P4# cp makefile.linux_ifc_P4 makefile# vi makefile and moifiy the line:line 19: change the 'FC=ifc' to 'FC=ifort'get out and save.# makethis will obtain a file 'libdmy.a'# cd ..6.2 Go into the vasp.4.6# cp makefile.linux_ifc_P4 makefilevi makefile and changelist of change:line 50, 52 :add # before $FC and FCLline 80-82: add # before frontline 88: change "FFLAGS = -FR -lowercase -assume byterecl' to "FFLAGS = -FR -lowercase -assume byterecl -I/opt/mpich2-1.4.1p1/include"line 102: change "OFLAG=-O3 -xW -tpp7" to "OFLAG=-O1"line 133: add BLAS=-L/opt/intel/Compiler/11.1/073/mkl/lib/32 -lmkl_intel -lmkl_intel_thread -lmkl_core -lguide -lpthreadline 136: add # before 'BLAS'line 139: add # before "LAPACK''line 140: add LAPACK=-L/opt/intel/Compiler/11.1/073/mkl/lib/32 -lmkl_lapack line 201 : old #FC=mpif77new FC=mpif90line 202 : old #FCL=$(FC)new FCL=$(FC)line 211-214: remove the # before the CPPline 241: remove the # before FFT3D and chane the last words old '/opt/libs/fftw-3.0.1/lib/libfftw3.a'new ' /usr/lib/libfftw3.aline 343 : remove the option '-e95' ; get out and save it# makewill generate commond 'vasp'# cp vasp /usr/bin# source /etc/profilecan use vasp in every user. congratulation!。
Vasp编译测试
![Vasp编译测试](https://img.taocdn.com/s3/m/8635d24b3a3567ec102de2bd960590c69ec3d8c7.png)
Vasp编译三种情况(mkl+ifort,goto+ifort,goto2+ifort)Xuliang 2010-2-7安装编译环境:Cluster: rocks5.2(内核是centos5.2) dell opetix 960 四核酷睿Q960 8G内存,千兆交换机。
CentOS5.2+mkl 10.0.1.014+mpich 1.2.7+ifort 10.1.015三种情况下不同在于选用不同的blas库而已,下面蓝色有标注说明选用goto2+ifort+mpich速度几乎是前面两种的2倍(串行和并行),具体可以看下面的表格测试数据)。
有人测试5.2的说明附录在最后。
1、先编译得到intel的libfftw3xf_intel.a (不知道有没有人对比过不同fft对速度的影响)超级用户:cd /opt/intel/mkl/10.1.0.015/interfaces/fftw3xfmake libem64t compiler=intel2、Mpich 和intel编译器前面已经装好。
3、gotoblas库的编译:GotoBLAS2-1.13.tar.gz GotoBLAS-1.26.tar.gz编译goto2如下:解压后在目录下:make BINARY=64 FC=ifort CC=icc TARGET=CORE2编译goto如下:修改Makefile.rule:C_COMPILER = INTEL F_COMPILER = INTEL BINARY64 = 1然后./ quickbuild.64bit4、vasp编译过程:(红色为修改部分)Install VASP lib 修改如下:.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterec l $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.fCompile VASP parallel general-k verision by mpich.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterecl $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f[********************.6.34]$lsmakefile.4.6 vasp.4.6 vasp.4.libmakefile.lib vasp.4.6.tar.gz vasp.4.lib.tar.gz[********************.6.34]$moremakefile.4.6.SUFFIXES: .inc .f .f90 .F#-----------------------------------------------------------------------# Makefile for Intel Fortran compiler for P4 systems## The makefile was tested only under Linux on Intel platforms# (Suse 5.3- Suse 9.0)# the followin compiler versions have been tested# 5.0, 6.0, 7.0 and 7.1 (some 8.0 versions seem to fail compiling the code) # presently we recommend version 7.1 or 7.0, since these# releases have been used to compile the present code versions## it might be required to change some of library pathes, since# LINUX installation vary a lot# Hence check ***ALL**** options in this makefile very carefully#-----------------------------------------------------------------------## BLAS must be installed on the machine# there are several options:# 1) very slow but works:# retrieve the lapackage from # and compile the blas routines (BLAS/SRC directory)# please use g77 or f77 for the compilation. When I tried to# use pgf77 or pgf90 for BLAS, V ASP hang up when calling# ZHEEV (however this was with lapack 1.1 now I use lapack 2.0) # 2) most desirable: get an optimized BLAS## the two most reliable packages around are presently:# 3a) Intels own optimised BLAS (PIII, P4, Itanium)# /software/products/mkl/# this is really excellent when you use Intel CPU's## 3b) or obtain the atlas based BLAS routines# /# you certainly need atlas on the Athlon, since the mkl# routines are not optimal on the Athlon.# If you want to use atlas based BLAS, check the lines around LIB= ## 3c) mindblowing fast SSE2 (4 GFlops on P4, 2.53 GHz)# Kazushige Goto's BLAS# /users/kgoto/signup_first.html##-----------------------------------------------------------------------# all CPP processed fortran files have the extension .f90SUFFIX=.f90#-----------------------------------------------------------------------# fortran compiler and linker#-----------------------------------------------------------------------FC=ifort# fortran linkerFCL=$(FC)#-----------------------------------------------------------------------# whereis CPP ?? (I need CPP, can't use gcc with proper options)# that's the location of gcc for SUSE 5.3## CPP_ = /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -P -C## that's probably the right line for some Red Hat distribution:## CPP_ = /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P -C## SUSE X.X, maybe some Red Hat distributions:CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)#-----------------------------------------------------------------------# possible options for CPP:# NGXhalf charge density reduced in X direction# wNGXhalf gamma point only reduced in X direction# avoidalloc avoid ALLOCA TE if possible# IFC work around some IFC bugs# CACHE_SIZE 1000 for PII,PIII, 5000 for Athlon, 8000-12000 P4# RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO (depends on used BLAS)# RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (depends on used BLAS)#-----------------------------------------------------------------------#CPP = $(CPP_) -DHOST=\"LinuxIFC\" \-Dkind8 -DNGXhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc \# -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# general fortran flags (there must a trailing blank on this line)#-----------------------------------------------------------------------FFLAGS = -FR -lowercase -assume byterecl#-----------------------------------------------------------------------# optimization# we have tested whether higher optimisation improves performance# -axK SSE1 optimization, but also generate code executable on all mach.# xK improves performance somewhat on XP, and a is required in order# to run the code on older Athlons as well# -xW SSE2 optimization# -axW SSE2 optimization, but also generate code executable on all mach.# -tpp6 P3 optimization# -tpp7 P4 optimization#-----------------------------------------------------------------------#OFLAG=-O3 -xTOFLAG=-O3 -xT -static-intel -static -mtune=core2 -fp-model strictOFLAG_HIGH = $(OFLAG)OBJ_HIGH =OBJ_NOOPT =DEBUG = -FR -O0INLINE = $(OFLAG)#-----------------------------------------------------------------------# the following lines specify the position of BLAS and LAPACK# on P4, V ASP works fastest with the libgoto library# so that's what I recommend#-----------------------------------------------------------------------# Atlas based libraries#A TLASHOME= $(HOME)/archives/BLAS_OPT/A TLAS/lib/Linux_P4SSE2/#BLAS= -L$(A TLASHOME) -lf77blas -latlas# use specific libraries (default library path might point to other libraries)#BLAS= $(A TLASHOME)/libf77blas.a $(A TLASHOME)/libatlas.a# use the mkl Intel libraries for p4 ()# mkl.5.1# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines#BLAS=-L/opt/intel/mkl/lib/32 -lmkl_p4 -lpthread#BLAS= -L/opt/intel/mkl/10.0.1.014/lib/em64t -lmkl_em64t -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread \-lmkl_sequential -lmkl_solver_lp64 -lmkl_solver_lp64_sequential –lguide(注明:这样是mkl编译)# mkl.5.2 requires also to -lguide library# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines# even faster Kazushige Goto's BLAS# /users/kgoto/signup_first.html#BLAS= /opt/libs/libgoto/libgoto_p4_512-r0.6.soBLAS= /home/samuel/soft/lib/GotoBLAS/libgoto_penrynp-r1.26.so (注:这个是goto编译) #BLAS= /home/samuel/soft/lib/GotoBLAS2/libgoto2_core2p-r1.13.so (注:这个是goto2编译)# LAPACK, simplest use vasp.4.lib/lapack_doubleLAPACK= ../vasp.4.lib/lapack_double.o# use atlas optimized part of lapack#LAPACK= ../vasp.4.lib/lapack_atlas.o -llapack -lcblas# use the mkl Intel lapack#LAPACK= -lmkl_lapack#-----------------------------------------------------------------------#LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \$(BLAS)# options for linking (for compiler version 6.X, 7.1) nothing is requiredLINK =# compiler version 7.0 generates some vector statments which are located# in the svml library, add the LIBPA TH and the library (just in case)#LINK = -L/opt/intel/compiler70/ia32/lib/ -lsvml#-----------------------------------------------------------------------# fft libraries:# V ASP.4.6 can use fftw.3.0.X ()# since this version is faster on P4 machines, we recommend to use it#-----------------------------------------------------------------------#FFT3D = fft3dfurth.o fft3dlib.o#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a#===================================================================== ==# MPI section, uncomment the following lines## one comment for users of mpich or lam:# Y ou must *not* compile mpi with g77/f77, because f77/g77# appends *two* underscores to symbols that contain already an# underscore (i.e. MPI_SEND becomes mpi_send__). The pgf90/ifc# compilers however append only one underscore.# Precompiled mpi version will also not work## We found that mpich.1.2.1 and lam-6.5.X to lam-7.0.4 are stable# mpich.1.2.1 was configured with# ./configure -prefix=/usr/local/mpich_nodvdbg -fc="pgf77 -Mx,119,0x200000" \# -f90="pgf90 " \# --without-romio --without-mpe -opt=-O \## lam was configured with the line# ./configure -prefix /opt/libs/lam-7.0.4 --with-cflags=-O -with-fc=ifc \# --with-f77flags=-O --without-romio## please note that you might be able to use a lam or mpich version# compiled with f77/g77, but then you need to add the following# options: -Msecond_underscore (compilation) and -g77libs (linking)## Please do not send me any queries on how to install MPI, I will# certainly not answer them#===================================================================== ==#-----------------------------------------------------------------------# fortran linker for mpi: if you use LAM and compiled it with the options# suggested above, you can use the following line#-----------------------------------------------------------------------FC=/opt/mpich/intel/bin/mpif90FCL=$(FC)#-----------------------------------------------------------------------# additional options for CPP in parallel version (see also above):# NGZhalf charge density reduced in Z direction# wNGZhalf gamma point only reduced in Z direction# scaLAPACK use scaLAPACK (usually slower on 100 Mbit Net)#-----------------------------------------------------------------------CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DCACHE_SIZE=16000 -DPGF90 -Davoidalloc -DNGZhalf \-DMPI_BLOCK=8000 -DRPROMU_DGEMV -DRACCMU_DGEMV#CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \# -DMPI_BLOCK=500 \## -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# location of SCALAPACK# if you do not use SCALAPACK simply uncomment the line SCA#-----------------------------------------------------------------------#BLACS=$(HOME)/archives/SCALAPACK/BLACS/#SCA_=$(HOME)/archives/SCALAPACK/SCALAPACK#SCA= $(SCA_)/libscalapack.a \#$(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacsF77init_MPI-LINUX-0.aSCA=#-----------------------------------------------------------------------# libraries for mpi#-----------------------------------------------------------------------LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \-L/opt/intel/mkl/10.0.1.014/lib/em64t \-lmkl_em64t -lguide -lpthread -lm \$(BLAS)# $(SCA) $(BLAS)# FFT: fftmpi.o with fft3dlib of Juergen FurthmuellerFFT3D = fftmpi.o fftmpi_map.o fft3dlib.o \/opt/intel/mkl/10.0.1.014/lib/em64t/libfftw3xf_intel.a# 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#-----------------------------------------------------------------------# general rules and compile lines#-----------------------------------------------------------------------BASIC= symmetry.o symlib.o lattlib.o random.oSOURCE= base.o mpi.o smart_allocate.o xml.o \constant.o jacobi.o main_mpi.o scala.o \asa.o lattice.o poscar.o ini.o setex.o radial.o \pseudo.o mgrid.o mkpoints.o wave.o wave_mpi.o $(BASIC) \nonl.o nonlr.o dfast.o choleski2.o \mix.o charge.o xcgrad.o xcspin.o potex1.o potex2.o \metagga.o constrmag.o pot.o cl_shift.o force.o dos.o elf.o \tet.o hamil.o steep.o \chain.o dyna.o relativistic.o LDApU.o sphpro.o paw.o us.o \ebs.o wavpre.o wavpre_noio.o broyden.o \dynbr.o rmm-diis.o reader.o writer.o tutor.o xml_writer.o \brent.o stufak.o fileio.o opergrid.o stepver.o \dipol.o xclib.o chgloc.o subrot.o optreal.o davidson.o \edtest.o electron.o shm.o pardens.o paircorrection.o \optics.o constr_cell_relax.o stm.o finite_diff.o \elpol.o setlocalpp.oINC=vasp: $(SOURCE) $(FFT3D) $(INC) main.orm -f vasp$(FCL) -o vasp $(LINK) main.o $(SOURCE) $(FFT3D) $(LIB) makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC)$(FCL) -o makeparam $(LINK) makeparam.o $(SOURCE) $(FFT3D) $(LIB) zgemmtest: zgemmtest.o base.o random.o $(INC)$(FCL) -o zgemmtest $(LINK) zgemmtest.o random.o base.o $(LIB) dgemmtest: dgemmtest.o base.o random.o $(INC)$(FCL) -o dgemmtest $(LINK) dgemmtest.o random.o base.o $(LIB)ffttest: base.o smart_allocate.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC) $(FCL) -o ffttest $(LINK) ffttest.o mpi.o mgrid.o random.o smart_allocate.o base.o $(FFT3D) $(LIB)kpoints: $(SOURCE) $(FFT3D) makekpoints.o main.F $(INC)$(FCL) -o kpoints $(LINK) makekpoints.o $(SOURCE) $(FFT3D) $(LIB)clean:-rm -f *.g *.f *.o *.L *.mod ; touch *.Fmain.o: main$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c main$(SUFFIX)xcgrad.o: xcgrad$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcgrad$(SUFFIX)xcspin.o: xcspin$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcspin$(SUFFIX)makeparam.o: makeparam$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c makeparam$(SUFFIX)makeparam$(SUFFIX): makeparam.F main.F## MIND: I do not have a full dependency list for the include# and MODULES: here are only the minimal basic dependencies# if one strucuture is changed then touch_dep must be called# with the corresponding name of the structure#base.o: base.inc base.Fmgrid.o: mgrid.inc mgrid.Fconstant.o: constant.inc constant.Flattice.o: lattice.inc lattice.Fsetex.o: setexm.inc setex.Fpseudo.o: pseudo.inc pseudo.Fposcar.o: poscar.inc poscar.Fmkpoints.o: mkpoints.inc mkpoints.Fwave.o: wave.inc wave.Fnonl.o: nonl.inc nonl.Fnonlr.o: nonlr.inc nonlr.F$(OBJ_HIGH):$(CPP)$(FC) $(FFLAGS) $(OFLAG_HIGH) $(INCS) -c $*$(SUFFIX)$(OBJ_NOOPT):$(CPP)$(FC) $(FFLAGS) $(INCS) -c $*$(SUFFIX)fft3dlib_f77.o: fft3dlib_f77.F$(CPP)$(F77) $(FFLAGS_F77) -c $*$(SUFFIX).F.o:$(CPP)$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX).F$(SUFFIX):$(CPP)$(SUFFIX).o:$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)# special rules#-----------------------------------------------------------------------# these special rules are cummulative (that is once failed# in one compiler version, stays in the list forever)# -tpp5|6|7 P, PII-PIII, PIV# -xW use SIMD (does not pay of on PII, since fft3d uses double prec)# all other options do no affect the code performance since -O1 is used#-----------------------------------------------------------------------fft3dlib.o : fft3dlib.F$(CPP)$(FC) -FR -lowercase -O1 (注明:这里去掉了-tpp7)-xT -prefetch- -unroll0 (注明:这里去掉了-e95 )-vec_report3 -c $*$(SUFFIX)fft3dfurth.o : fft3dfurth.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)radial.o : radial.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symlib.o : symlib.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symmetry.o : symmetry.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)dynbr.o : dynbr.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)broyden.o : broyden.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)us.o : us.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)wave.o : wave.F$(CPP)$(FC) -FR -lowercase -O0 -c $*$(SUFFIX)LDApU.o : LDApU.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX) V asp编译测试:CentOS5.2+mkl 10.1.0.015+openmpi 1.3.2+ifort 11.0.074编译vasp5.2安装编译环境:Cluster简况:xeon 5420, 12G ram, 千兆交换机。
vasp编译
![vasp编译](https://img.taocdn.com/s3/m/a9a032e0f61fb7360b4c6579.png)
(1)准备1.sudo apt-get install g++sudo apt-get install build-essentialsudo apt-get install gcc-multilibsudo apt-get install libstdc++5sudo apt-get install openjdk-6-jre-headlesssudo apt-get install ia32-libssudo apt-get install lib32stdc++6sudo apt-get install libc6-dev-i386sudo apt-get install g++-multilibsudo apt-get install gfrotran1 2 3 tar -2. xzvf xxx #xxx 指压缩包的名称 cd 解压后目录 ./install.sh##########安装过程很简单,安装提示就行########安装完成后,修改环境变量1 vi ~/.bashrc在末尾添加source /opt/intel/bin/compilervars.sh intel64 (64位版本)source /opt/intel/bin/compilervars.sh ia32 (32位版本)1 source ~/.bashrc4. 编译mpi首先下载mpich2的安装文件1 2 3 4 5 6 tar mpich2压缩包cd 文件夹./configure --prefix=安装目录 f77=ifort f90=ifort fc=ifortmakemake installvi ~/.bashrc笔者安装目录在/opt/mpich2,也可以放在其他文件夹中,注意执行make install 用户需要有写入权限在文件最后写入如下代码1 2 3 4 #mpi2 startPATH=/usr/local/mpich2-1.2.1p1/bin:$PATHexport PATH#mpi2 end再source 一下1 source ~/.bashrc5.编译fftw1 2 3 4 5 tar 安装文件cd 文件夹./configure --prefix=安装目录 F77=ifort F90=ifort GCC=ifortmakemake install all6.编译vasp准备 vasp.5.2.tar.gz vasp.5.lib.tar.gz首先编译的是vasp.lib1 2 3 4 5 tar xzvf vasp.5.2.tar.gztar xzvf vasp.5.lib.tar.gzcd vasp.5.libcp makefile.linux_ifc_P4 makefilevi makefile修改19行的 ifc –>ifort1 make如果出现 error { gcc:error trying to wxec ‘f951′ :execvp : No such file or directory }这是gcc 的一个BUG ,解决方法是安装gfortran1 sudo apt-get install gfortran然后再重新编译接着编译vasp1 2 3 4 cd ../cd vasp.5.2cp makefile.linux_ifc_P4 makefilevi makefile主要有如下几个改动1 2 3 4 5 6 7 8 9 10 11 12 1row:53 FC=ifc-->FC=ifortrow:129 BLAS= /opt/libs/libgoto/libgoto.so-->#BLAS= /opt/libs/libgoto/libgoto.sorow:132 LAPACK= ../vasp.5.lib/lapack_double.o-->#LAPACK= ../vasp.5.lib/lapack_double.o row:135后添加新行MKLINCLUDE=/opt/intel/mkl/include/MKLPATH=/opt/intel/mkl/lib/intel64/BLASLAPACK=-L/opt/intel/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -l iomp5 -lpthread#LIB = -L../vasp.5.lib -ldmy \../vasp.5.lib/linpack_double.o $(LAPACK) \$(BLAS)LIB = -I$(MKLINCLUDE) -L$(MKLPATH) \-L../vasp.5.lib -ldmy \$(BLASLAPACK) \../vasp.5.lib/linpack_double.o31 4 1 5 1 6 1 7 1 8 #158 ff3d后加入库的目录(根据安装ff3d的位置来)FFT3D = fft3dfurth.o fft3dlib.o /usr/local/lib/libfftw3.a然后make,如果没有编译错误那应该是编译成功了,会产生一个vasp的可执行文件。
编译VASP +cell-relax +VTST
![编译VASP +cell-relax +VTST](https://img.taocdn.com/s3/m/50b0ff7ebf23482fb4daa58da0116c175f0e1edd.png)
编译VASP +cell-relax +VTST操作系统Ubuntu1、I ntel库编译过程(1)安装parallel_studio_xe_2019_update5_cluster_edition输入./install_GUI.sh运行软件选择Choose alternative activation找到parallel_studio_x.lic,并导入.Next 选择常规安装选择安装路径,最好安装在用户目录下,而不是root:/opt/inter。
例如/home/jef/intel选择安装组件,一共只有3.8GB:(2)修改.bashrcInstall安装后编辑当前用户目录下的.bashrc文件gedit ~/.bashrc命令,找到/home/jef/intel/parallel_studio_xe_2019/psxevars.sh路径。
在.bashrc文件里输入source /opt/intel/parallel_studio_xe_2019/psxevars.sh然后重新进入终端,运行ifort -V,查看编译器的版本是否正常。
(3)编译libfftw3xf_intel.a进入/home/jef/intel/compilers_and_libraries_2019.1.144/linux/mkl/interfaces/fftw3xf,运行make libintel64命令,产生libfftw3xf_intel.a。
2、编译VASP过程+cell-relax +VTST(1)解压VASP安装包把arch/makefile.include.linux_intel拷到上一级目录下改名为makefile.include,里面的配置专门适合Intel编译器。
打开此文件,把其中的OFLAG参数里加入-xhost或者O3。
(2)修改constr_cell_relax.F获得固定基矢优化结构的方法,或者将修改好的constr_cell_relax.F文件直接覆盖./src/constr_cell_relax.F的文件。
简单组建linux集群及并行编译vasp过程
![简单组建linux集群及并行编译vasp过程](https://img.taocdn.com/s3/m/54357e0cb8f67c1cfbd6b8c6.png)
简单组建linux 集群及并行编译vasp 过程我们现在主要是用做高性能计算,下面就是我的集群的组建过程。
集群的硬件环境:做一个集群,节点机器的硬件最好相同,这样计算的效率就会高很多,同时组建集群也相对容易。
以下是我的机器的配置情况(全新,组装)另外要说的是,我们的节点机没有配置显示器,全部工作由服务器完成。
连接就是通过交换机连接,和一般局域网连接相同。
服务器:P4 3.2 ,内存2 G,硬盘:160G,显示器,网卡:2个千兆网卡(money 8 千多)节点(10台):P4 3.2 ,内存: 2 G,硬盘:80G ,网卡:千兆网卡(5 千多每台)华为24 口千兆交换机( 4 千多)集群软件环境:建一个简单的集群,其实并不难,主要配置nis ,nfs ,rsh ,mpi 就好了。
推荐大家看一本书《微机集群组建、优化和管理》车静光著,机械工业出版社。
我的集群,采用suse9.3 ,操作系统其实也很重要,这次试了很多操作系统,redhat9 ,rhas4 无法识别网卡,rocks 无法安装,如果硬件没有什么问题,建议大家可以试下rocks cluster 这个集群系统,rocks 集操作系统和集群于一体,安装完成并行环境就已经建立,而且还配备了pbs 管理软件,非常简单,容易上手,只是我的硬件不太兼容,本来是想装rocks 的,无奈,只有自己动手了。
Suse配置nis , nfs非常简单,因为suse强大的yast,就像window 一样方便,只要鼠标轻点几下就ok。
1.Linux 系统的安装,suse 安装也非常简单,在此不想详细讲太多,主要是在分区的时候要注意,最要自己手动分区,对于服务器来说,最好能分一个独立的分区/home,因为节点机器要通过nfs共享服务器的/home。
注意的是一下几个软件包一定要安装nfs (nfs -utils ),nis (ypbind ),rsh (rsh -server )。
vasp并行编译v1.01
![vasp并行编译v1.01](https://img.taocdn.com/s3/m/c10e940b52ea551810a68713.png)
2.安装 mkl 3.设置环境变量/root/.bashrc # .bashrc
# User specific aliases and functions
alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' PATH="$PATH:/usr/local/mpich/bin" (mpich2 的安装目录) # Source global definitions if [ -f /etc/bashrc ]; then
单机四核 VASP 软件并行编译步骤 V1.0
硬件:……. 软件:Redhat linux(版本号)、编译器(ifort)l_cprof_p_11.1.072_ia32、数学库 l_mkl_p_10.2.5.035、并行软件 mpich2-1.2.1p1、vasp4.6、vasp4.lib、Python2.5
CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \
-Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
-DMPI_BLOCK=500 \
-DRPROMU_DGEMV -DRACCMU_DGEMV 224 行 前 加 # 227 行 前 加 # 233-235 行 前 的 # 去掉 238 行 前 的 # 去掉 343 行 的 -e95 去掉 保存退出后 编译 make 编译通过则 cp vasp /bin 在任何目录下 vasp 命令都可以调用了
材料模拟计算软件VASP
![材料模拟计算软件VASP](https://img.taocdn.com/s3/m/a5aa4075f46527d3240ce042.png)
e. 修改第129和130行的关于ATLASHOME和 BLAS的定义:
4. 使用方法
使用VASP进行计算,用户需要准备输入文件才 可以进行计算。
4.1 建立输入文件 VASP的输入文件主要有四个,分别为KPOINTS、
POSCAR、POTCAR和INCAR。还有一个控制在程序 运行过程中是否停止的输入文件STOPCAR,这个文 件不是必要的。
a. INCAR VASP的主要输入文件,用于告诉 VASP做什么和怎么做。INCAR里命令的输入没有 先后顺序,包含了大量参数,当然很多参数有默认 值,有些关键字之间是相关的,如PREC和ENCUT、 ENMIN等,设置不小心的话关键字的数值之间可能 产生冲突,运行的时候会产生一些很奇怪的报错信 息。此外,如果在win下写文件,然后导入 linux下有 时也会产生一些奇怪的错误。所以建议大家尽量在 linux下书写输入文件。
4.2 建立作业提交脚本
科学计算应用软件系列介绍
上海超级计算中心的曙光4000A使用的是 PLATFORM公司的LSF作业调度系统,因此需要建立 一个LSF脚本文件来递交作业。递交的作业脚本例如 下:
APP_NAME=”debug” NP=4 NP_PER_NODE=4 RUN=”./vasp” 输出文件主要在OUTCAR中。假定此脚本文件名 为vasp.lsf, 用户可以自行取名。 第一行表示要运行的作业的队列为debug队列; 第二行表示需要的CPU数目;第三行表示每个节点运 行4个CPU;第四行是VASP的可执行程序运行命令。 建立好作业提交脚本后(此处为vasp.lsf),使用 bsub vasp.lsf命令进行提交.
VASP使用手册手册使用VASP使用
![VASP使用手册手册使用VASP使用](https://img.taocdn.com/s3/m/fa64bfd3561252d381eb6e43.png)
VASP使用手册手册使用VASP使用VASP使用手册(完善中)基础(前提)知识Linux系统文字界面的基础操作*会进一个特定的目录下,学会建立,删除,移动,复制目录和文件,掌握vim 文字处理程序(可以理解成Windows下的文本文档(*. txt),但是功能更强,可以在里面编辑脚本程序,fortran或者C语言程序)建议参见网页里面的内容非常详尽还有很多例子,看时建议抓住重点看关于origin(用来画DOS图)和VESTA(用来显示儿何结构和电子结构)都非常容易学,会基本操作就可,遇到问题可以上网查查或与同学交流在Linux系统下讣算软件VASP的使用一、建好5个输入文件(POSCAR, INCAR, POTCAR, KPOINTS, 一个提交文件)1,POSCAR手动建立,vi POSCAR-..还可以在MS的帮助下建立2,INCAR咱们组有公用标准的叮CAR文件,进行不同的计算只需改其中的儿个参数就可以T3,POTCAR从cluster ±的某个口录下面拷贝过来,放到要计算的H录里如果要算多个元素的体系,使用命令Eg: cat POTCAR-Ni POTCAR-Pt > POTCAR4, KPOINTS 文件,从别处拷贝一个,修改里面的参数即可5, 提交文件都可以用现成的,在老节点上(nodel'node21)使用1 sf. sub新节点上使用yzxSvasp (记不清了,用绿衬底标出)二、 在服务器上编译vasp, 一般管理员或别的用户以及编译过了,本平台编译 好的LI 录在/public/home/zslu/my-soft/vasp. □. 2 public/baoer/vasp. 5. 2, 编译使用 的mpi 可能不同。
将上面LI 录下的可执行文件vasp 拷贝到用户工作LI 录下或者在作业提交脚本 里通过LI录找到可执行文件vaspo三、 提交任务使用命令qsub lsf. sub 或者 qsub yzx8vasp|8026.node22之后会自动产生例如的字样,这个8026表示的就是你提交的这个任务的任务号码四、 查看任务qstat - a 或 qstat -nfD rienmnoAWIR 3tD5 TH . TIXA e IIXM.»<2.nsaa;JM2l ・nze22 30, 3jnZe22 •U4・ ncd«2J «02S.no^»?2 一般只需要看3列第一列:任务序号■ : 1 1 A 1 氐5:2:" 1 r < V X N X h-iLuh Ztch »:!M二 ・ • • xooot a :i •・ too^t a c ::a •・,旳g * H ;« 一 o -- 一 XODOl » C^iSS 一 zg A me第二列:使用者账户最后一列:计算消耗的时间五、杀某一个任务由于任务提错了或别的原因,不想要算某一个任务了。
Ubuntu18.04编译VASP.5.4.4及20180516补丁
![Ubuntu18.04编译VASP.5.4.4及20180516补丁](https://img.taocdn.com/s3/m/a844255126fff705cc170ae3.png)
Ubuntu18.04编译VASP.5.4.4及20180516补丁1.装好Ubuntu18.04后,先安装编译VASP必要的软件:# apt-get install make build-essential g++ gfortran# apt-get install libblas-dev liblapack-dev libopenmpi-dev libscalapack-mpi-dev libfftw3-dev2.去下载VASP.5.4.4及20180516补丁tar -xzvf vasp.5.4.4.tar.gzcd vasp.5.4.4将patch.5.4.4.16052018.gz补丁考到vasp.5.4.4gunzip patch.5.4.4.16052018.gzpatch -p0 < patch.5.4.4.160520183.创建make.include,内容如下# Precompiler optionsCPP_OPTIONS= -DHOST=\"LinuxGNU\" \-DMPI -DMPI_BLOCK=8000 -Duse_collective \-DscaLAPACK -DCACHE_SIZE=4000 \-Davoidalloc -Duse_bse_te \-DtbdynCPP = gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)FC = mpif90FCL = mpif90FREE = -ffree-form -ffree-line-length-noneFFLAGS = -wOFLAG = -O2 -mtune=native -m64OFLAG_IN = $(OFLAG)DEBUG = -O0LIBDIR = /usr/lib/x86_64-linux-gnuBLAS = -L$(LIBDIR) -lblasLAPACK = -L$(LIBDIR) -llapackBLACS =SCALAPACK = -L/usr/lib -lscalapack-openmpi $(BLACS)LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)LLIBS += -lfftw3INCS = -I/usr/includeOBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.oOBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o OBJECTS_O2 += fft3dlib.o# For what used to be vasp.5.libCPP_LIB = $(CPP)FC_LIB = $(FC)CC_LIB = gccCFLAGS_LIB = -OFFLAGS_LIB = -O1FREE_LIB = $(FREE)OBJECTS_LIB= linpack_double.o getshmem.o# For the parser libraryCXX_PARS = g++LIBS += parserLLIBS += -Lparser -lparser -lstdc++# Normally no need to change thisSRCDIR = ../../srcBINDIR = ../../bin4.编译std, gam and ncl 版本的VASPmake std gam ncl也可以只编译其中的一种如 make std也可以make all,和make std gam ncl一样make all大约需要15分钟5.如果装了intel MKL的,可以将第3步的make.include换成下面内容# Precompiler optionsCPP_OPTIONS= -DHOST=\"LinuxGNU\" \-DMPI -DMPI_BLOCK=8000 -Duse_collective \-DscaLAPACK -DCACHE_SIZE=4000 \-Davoidalloc -Duse_bse_te \-DtbdynCPP = gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)FC = mpif90 -m64 -I$(MKLROOT)/includeFCL = mpif90 -m64 -I$(MKLROOT)/includeFREE = -ffree-form -ffree-line-length-noneFFLAGS = -wOFLAG = -O2 -mtune=native -m64OFLAG_IN = $(OFLAG)DEBUG = -O0LIBDIR = /usr/lib/x86_64-linux-gnuBLAS =LAPACK =BLACS =SCALAPACK = -L/usr/lib -lscalapack-openmpi $(BLACS)LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)LLIBS += -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldlINCS = -I$(MKLROOT)/include/fftwOBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.oOBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.oOBJECTS_O2 += fft3dlib.o# For what used to be vasp.5.libCPP_LIB = $(CPP)FC_LIB = $(FC)CC_LIB = gccCFLAGS_LIB = -OFFLAGS_LIB = -O1FREE_LIB = $(FREE)OBJECTS_LIB= linpack_double.o getshmem.o# For the parser libraryCXX_PARS = g++LIBS += parserLLIBS += -Lparser -lparser -lstdc++# Normally no need to change this SRCDIR = ../../srcBINDIR = ../../bin。
简单组建linux集群及并行编译vasp过程
![简单组建linux集群及并行编译vasp过程](https://img.taocdn.com/s3/m/fdb5aaec0975f46527d3e124.png)
简单组建linux集群及并行编译vasp过程我们现在主要是用做高性能计算,下面就是我的集群的组建过程。
集群的硬件环境:做一个集群,节点机器的硬件最好相同,这样计算的效率就会高很多,同时组建集群也相对容易。
以下是我的机器的配置情况(全新,组装)另外要说的是,我们的节点机没有配置显示器,全部工作由服务器完成。
连接就是通过交换机连接,和一般局域网连接相同。
服务器:P4 3.2,内存2 G ,硬盘:160G ,显示器,网卡:2个千兆网卡(money:8千多)节点(10台): P4 3.2,内存:2 G,硬盘:80G ,网卡:千兆网卡(5千多每台)华为24口千兆交换机(4千多)集群软件环境:建一个简单的集群,其实并不难,主要配置nis,nfs,rsh,mpi 就好了。
推荐大家看一本书《微机集群组建、优化和管理》车静光著,机械工业出版社。
我的集群,采用suse9.3,操作系统其实也很重要,这次试了很多操作系统,redhat9,rhas4无法识别网卡,rocks无法安装,如果硬件没有什么问题,建议大家可以试下rocks cluster这个集群系统,rocks集操作系统和集群于一体,安装完成并行环境就已经建立,而且还配备了pbs管理软件,非常简单,容易上手,只是我的硬件不太兼容,本来是想装rocks的,无奈,只有自己动手了。
Suse配置nis,nfs非常简单,因为suse强大的yast,就像window一样方便,只要鼠标轻点几下就ok。
1.Linux系统的安装,suse安装也非常简单,在此不想详细讲太多,主要是在分区的时候要注意,最要自己手动分区,对于服务器来说,最好能分一个独立的分区/home,因为节点机器要通过nfs共享服务器的/home。
注意的是一下几个软件包一定要安装nfs(nfs-utils),nis(ypbind),rsh(rsh-server)。
2.基本的网络配置(通过yast的网卡配置)服务器的:192.168.1.253 hostname:node0 域名:node0.cluster节点机器:192.168.1-192.168.1.10 hostname:node1-node10 域名:node*.cluser掩码:255.255.255.03.服务器的配置3.1.Nfs设置NFS(NetWork File System)是一种使用比较多的网络文件系统,它以它的安装容易,使用方便得到很多Linux爱好者的使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)准备
1.
sudo apt-get install g++
sudo apt-get install build-essential
sudo apt-get install gcc-multilib
sudo apt-get install libstdc++5
sudo apt-get install openjdk-6-jre-headless
sudo apt-get install ia32-libs
sudo apt-get install lib32stdc++6
sudo apt-get install libc6-dev-i386
sudo apt-get install g++-multilib
sudo apt-get install gfrotran
1 2 3 tar -2. xzvf xxx #xxx 指压缩包的名称 cd 解压后目录 ./install.sh
##########安装过程很简单,安装提示就行########
安装完成后,修改环境变量
1 vi ~/.bashrc
在末尾添加
source /opt/intel/bin/compilervars.sh intel64 (64位版本)
source /opt/intel/bin/compilervars.sh ia32 (32位版本)
1 source ~/.bashrc
4. 编译mpi
首先下载mpich2的安装文件
1 2 3 4 5 6 tar mpich2压缩包
cd 文件夹
./configure --prefix=安装目录 f77=ifort f90=ifort fc=ifort
make
make install
vi ~/.bashrc
笔者安装目录在/opt/mpich2,也可以放在其他文件夹中,注意执行make install 用户需要有写入权限
在文件最后写入如下代码
1 2 3 4 #mpi2 start
PATH=/usr/local/mpich2-1.2.1p1/bin:$PATH
export PATH
#mpi2 end
再source 一下
1 source ~/.bashrc
5.编译fftw
1 2 3 4 5 tar 安装文件
cd 文件夹
./configure --prefix=安装目录 F77=ifort F90=ifort GCC=ifort
make
make install all
6.编译vasp
准备 vasp.5.2.tar.gz vasp.5.lib.tar.gz
首先编译的是vasp.lib
1 2 3 4 5 tar xzvf vasp.5.2.tar.gz
tar xzvf vasp.5.lib.tar.gz
cd vasp.5.lib
cp makefile.linux_ifc_P4 makefile
vi makefile
修改19行的 ifc –>ifort
1 make
如果出现 error { gcc:error trying to wxec ‘f951′ :execvp : No such file or directory }
这是gcc 的一个BUG ,解决方法是安装gfortran
1 sudo apt-get install gfortran
然后再重新编译
接着编译vasp
1 2 3 4 cd ../
cd vasp.5.2
cp makefile.linux_ifc_P4 makefile
vi makefile
主要有如下几个改动
1 2 3 4 5 6 7 8 9 10 11 12 1row:53 FC=ifc-->FC=ifort
row:129 BLAS= /opt/libs/libgoto/libgoto.so-->#BLAS= /opt/libs/libgoto/libgoto.so
row:132 LAPACK= ../vasp.5.lib/lapack_double.o-->#LAPACK= ../vasp.5.lib/lapack_double.o row:135后添加新行
MKLINCLUDE=/opt/intel/mkl/include/
MKLPATH=/opt/intel/mkl/lib/intel64/
BLASLAPACK=-L/opt/intel/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -l iomp5 -lpthread
#LIB = -L../vasp.5.lib -ldmy \
../vasp.5.lib/linpack_double.o $(LAPACK) \
$(BLAS)
LIB = -I$(MKLINCLUDE) -L$(MKLPATH) \
-L../vasp.5.lib -ldmy \
$(BLASLAPACK) \
../vasp.5.lib/linpack_double.o
3
1 4 1 5 1 6 1 7 1 8 #158 ff3d后加入库的目录(根据安装ff3d的位置来)FFT3D = fft3dfurth.o fft3dlib.o /usr/local/lib/libfftw3.a
然后make,如果没有编译错误那应该是编译成功了,会产生一个vasp的可执行文件。
1 cp vasp /usr/local/bin/vasp。