vasp 安装心得_第1页
vasp 安装心得_第2页
vasp 安装心得_第3页
vasp 安装心得_第4页
vasp 安装心得_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VASP5.2安装心得2014-05-07 来源:小木虫作者: yysskk花了五天时间终于学会怎么装VASP了,在此写下心得体会,供后人参考。个人觉得最难的一步就是makefile文件,网上流传着各种各样的版本,每个人都说自己编译成功了,却又各不相同,也说不清为什么,给新手极大的困扰。在此会详细介绍makefile的文件结构。其余大部分内容都是参考前人的,就不一一注明出处了。一、系统、编译程序及准备工作我用的是centos6.5+icc2011+ifort2011+openmpi1.6.51.1编译器安装系统安装不说了,网上教程多得是。Icc和ifort可以申请免费非商业版本,ic

2、c和ifort都各自带了一个MKL,使用的时候别搞混了。装2011的时候会缺组件,用yum都可以免费下载。装编译器的时候会要求关闭selinux,按照给出的步骤关闭即可。之后会说系统不兼容,但是可以继续装,默认安装路径是在/opt下面。装完之后会有提示,把安装目录/bin/ifortvars.sh 写到环境变量中,注意32/64位系统的参数不一样。C语言编译器建议用icc,毕竟是intel出品,针对自家cpu肯定有大量优化,效率上高于gcc是肯定的。这是装完之后的提示:     For csh/tcsh:      

3、;  $ source install-dir/bin/compilervars.csh intel64     For bash:        $ source install-dir/bin/compilervars.sh intel64     To invoke the installed compilers:        For C+: icpc  &#

4、160;     For C: icc        For Fortran: ifort之后重启或者重新登录,输入# which icc/opt/intel/composer_xe_2011_sp1.10.319/bin/intel64/icc# which ifort/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort能找到路径说明安装对了,然后再开始下一步,安装openmpi1.2 openmpi安装我在这里吃过很大的亏,所以单独拿

5、出来讲。Openmpi开源,网上自己下载。解压后进入文件夹,输入./configure CC=icc CXX=icpc F77=ifort FC=ifort(参考了 CentOS5.2+mkl 10.1.0.015+openmpi 1.3.2+ifort 11.0.074编译vasp5.2)icc是C语言编译,icpc是C+编译,ifort是Fortran编译,输入./configure help会有说明,这里要与VASP使用相同的编译器,不加参数的话就会调用gcc编译去了。强烈建议安装在默认目录,我第一次装没装在默认目录,之后运行需要手动加一大堆参数。之后按次序输入make,make ins

6、tall,安装完成,加入环境参数。这里要加入三个环境参数:export PATH=/usr/local/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/lib/openmpi:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH具体路径找自己的,其中少了第三个路径的话可以编译文件,但是运行编译后的文件会说找不到库函数。强烈建议安装完成之后进入解压文件夹(不是安装目录)下的example文件夹中测试程序,输入make之后会自动编译,完成之后输入mpirun np 8 he

7、llo_f90,如果安装正确,会出现:Hello, world, I am            0  of           8Hello, world, I am            1  of           8Hello,

8、world, I am            2  of           8Hello, world, I am            3  of           8Hello, world, I am   &#

9、160;        4  of           8Hello, world, I am            5  of           8Hello, world, I am         &#

10、160;  6  of           8Hello, world, I am            7  of           88是我服务器的cpu数量。我在网上看到很多人没有经过这一步测试就直接去编译VASP,结果两个软件的错误都堆在了一起,到底哪一步错了都不知道。这里还有一个严重的错误是提示找

11、不到mpivars.sh文件,我曾经用ubuntu12.04+icc2013+ifort2013编译到了这一步,最后不得不放弃,换成了centos+2011版编译器,小木虫上的人都说是2013版有问题。其实是缺少了MPI runtime这个运行组件,这个不用注册可以直接在intel官网上下载安装(/opt/intel目录下会多出一个impi文件夹),然后把目录添加进环境变量就行了。2013版应该也能编译,当时是不知道是缺这个组件就直接重装系统了。最后就进军VASP了二、VASP.lib及其它库函数编译Lib编译非常简单,参考(CentOS5.2+mkl 10.1.0.015+openmpi 1

12、.3.2+ifort 11.0.074编译vasp5.2)把编译器路径改一下就行CPP = /opt/intel/cce/10.1.018/bin/icc -E -P -C $*.F >$*.fCC= /opt/intel/cce/10.1.018/bin/iccFC= /opt/intel/Compiler/11.0/074/bin/intel64/ifort然后make就编译完成了,会有一个警告提示,不用管。之后编译MKL和GotoBLAS, GotoBLAL可免费下载(或者完全只用MKL也行),MKL编译还是参考那篇文章,进入/opt/intel/mkl/10.1.0.015/in

13、terfaces/fftw3xf make libem64t compiler=intel 完成之后在该目录下得到一个新文件和文件夹,然后编译GotoBLAS,解压后进入文件夹,make(这个不能像上面一样加参数,没研究过怎么改编译器),最后成功会有提示,默认gcc编译。里面有一个测试文件夹,我进去之后make提示说缺少文件,不过不影响后面VASP的编译,前提是编译完GotoBLAS后有正常结束提示,会显示用的编译器和其它信息。还有一个bug是对于某些CPU编译会出错,此时要用命令make TARGET=NEHALEM,而且必须联网,编译过程中会下载文件。完成这些工作之后就

14、能进行最后一步VASP主程序编译了。三、VASP主程序编译个人觉得最难的一步莫过于编辑makefile文件,第一次看的时候就像看天书一样,虽然作者给了很多注释,但依然搞不清什么地方该注释,什么地方要取消注释。尤其是网上流行的各个makefile文件版本都不相同,让人十分困惑。makefile文件非常简单,把注释都拿掉了之后就变成:.SUFFIXES: .inc .f .f90 .F(*)SUFFIX=.f90(*)FC=/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifortFCL=$(FC)CPP_ =  ./prep

15、rocess <$*.F | /usr/bin/cpp -P C -traditional > $*$(SUFFIX) (*)CPP     = $(CPP_)  -DHOST="LinuxIFC"           -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc           -DRPROMU_DGEMV  -DR

16、ACCMU_DGEMVFFLAGS =  -FR -assume byterecl -heap-arrays 64(*)OFLAG=-O2 -ip(*)OFLAG_HIGH = $(OFLAG) (*)OBJ_HIGH =(*)OBJ_NOOPT =(*)DEBUG  = -FR -O0(*)INLINE = $(OFLAG) (*)BLAS=LAPACK=LIB  = -L./vasp.5.lib -ldmy      ./vasp.5.lib/linpack_double.o $(LAPAC

17、K)      $(BLAS)FFT3D   =-#mpi-FC=/usr/local/bin/mpif90FCL=$(FC)CPP    = $(CPP_) -DMPI  -DHOST="LinuxIFC" -DIFC      -DCACHE_SIZE=8000 -DPGF90 -Davoidalloc -DNGZhalf      -DMPI_BLOCK=8000  -D

18、RPROMU_DGEMV  -DRACCMU_DGEMVBLAS=LAPACK=SCA=LIB     = -L./vasp.5.lib -ldmy        ./vasp.5.lib/linpack_double.o $(LAPACK)       $(SCA) $(LAPACK) $(BLAS)FFT3D   =这份文件可以分为两部分,前半部分有大量的注释,有很多参数路径之类的需要手动调整。后半部分是编译文件

19、的部分,调用各种程序来编译VASP,而我们关心的只是文件的前半部分。以上列出的是文件前半部分不带注释的内容,我标了(*)的地方,在文件的前半部分中是唯一的,必须要写的。不带(*)的地方,可以分为两部分,每个部分都一模一样,分别是:FC=FCL=CPP=BLAS=LAPACK=SCA=LIB=FFT3D  =可以对照着一份完整的makefile文件看一下,FC=FCL是指定的编译程序,串行是ifort,并行是mpif90.cpp是可带参数的相当于gcc的命令,貌似用来预处理?BLAS、LAPACK是相应库函数的路径,最终都会被包含在LIB路径下面(注意到LIB=最后有$(LA

20、PACK)$(BLAS)),还有就是独立的FFT3D。整个makefile的前半部分就是在选择参数和路径,用于后半部分的文件编译。带(*)的部分是必须有的,可以认为是基本参数。其余部分很明显是并行和串行编译的命令,编译的时候选其中一组就行。这一部分实际上就传递了四个变量而已,分别是编译器FC,预处理命令CPP,库函数路径LIB和FFT3D,注意到串行和并行的FFT3D文件是不一样的。BLAS、LAPACK已经被包括在了LIB中,makefile文件的后半部分是没有这两个变量的。所以这份文件就非常好理解了,串行和并行有各自独立的四个变量,调试好带(*)的基本参数,选好串行或者并行编译,其余部分注释掉就OK。现在更改库文件之类的操作就很好理解了,我使用GotoBLAS编译的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论