vasp 安装心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VASP5.2安装心得
2014-05-07 来源:小木虫作者: yysskk
花了五天时间终于学会怎么装VASP了,在此写下心得体会,供后人参考。个人觉得最难的一步就是makefile文件,网上流传着各种各样的版本,每个人都说自己编译成功了,却又各不相同,也说不清为什么,给新手极大的困扰。在此会详细介绍makefile的文件结构。其余大部分内容都是参考前人的,就不一一注明出处了。
一、系统、编译程序及准备工作
我用的是centos6.5+icc2011+ifort2011+openmpi1.6.5
1.1编译器安装
系统安装不说了,网上教程多得是。Icc和ifort可以申请免费非商业版本,icc和ifort都各自带了一个MKL,使用的时候别搞混了。装2011的时候会缺组件,用yum都可以免费下载。装编译器的时候会要求关闭selinux,按照给出的步骤关闭即可。之后会说系统不兼容,但是可以继续装,默认安装路径是在/opt下面。装完之后会有提示,把安装目录
/bin/ifortvars.sh 写到环境变量中,注意32/64位系统的参数不一样。C语言编译器建议用icc,毕竟是intel出品,针对自家cpu肯定有大量优化,效率上高于gcc是肯定的。这是装完之后的提示:
For csh/tcsh:
$ source install-dir/bin/compilervars.csh intel64
For bash:
$ source install-dir/bin/compilervars.sh intel64
To invoke the installed compilers:
For C++: icpc
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
能找到路径说明安装对了,然后再开始下一步,安装openmpi
1.2 openmpi安装
我在这里吃过很大的亏,所以单独拿出来讲。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 install,安装完成,加入环境参数。
这里要加入三个环境参数:
export PATH=/usr/local/bin:$PATH
export 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 8
Hello, world, I am 1 of 8
Hello, world, I am 2 of 8
Hello, world, I am 3 of 8
Hello, world, I am 4 of 8
Hello, world, I am 5 of 8
Hello, world, I am 6 of 8
Hello, world, I am 7 of 8
8是我服务器的cpu数量。我在网上看到很多人没有经过这一步测试就直接去编译VASP,结果两个软件的错误都堆在了一起,到底哪一步错了都不知道。
这里还有一个严重的错误是提示找不到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.3.2+ifort 11.0.074编译vasp5.2)把编译器路径改一下就行
CPP = /opt/intel/cce/10.1.018/bin/icc -E -P -C $*.F >$*.f
CC= /opt/intel/cce/10.1.018/bin/icc
FC= /opt/intel/Compiler/11.0/074/bin/intel64/ifort
然后make就编译完成了,会有一个警告提示,不用管。
之后编译MKL和GotoBLAS, GotoBLAL可免费下载(或者完全只用MKL也行),MKL 编译还是参考那篇文章,进入
/opt/intel/mkl/10.1.0.015/interfaces/fftw3xf
make libem64t compiler=intel
完成之后在该目录下得到一个新文件和文件夹,然后编译GotoBLAS,解压后进入文件夹,make(这个不能像上面一样加参数,没研究过怎么改编译器),最后成功会有提示,默认gcc编译。里面有一个测试文件夹,我进去之后make提示说缺少文件,不过不影响后面VASP的编译,前提是编译完GotoBLAS后有正常结束提示,会显示用的编译器和其它信息。
还有一个bug是对于某些CPU编译会出错,此时要用命令make TARGET=NEHALEM,而且必须联网,编译过程中会下载文件。
完成这些工作之后就能进行最后一步VASP主程序编译了。
三、VASP主程序编译
个人觉得最难的一步莫过于编辑makefile文件,第一次看的时候就像看天书一样,虽然作者给了很多注释,但依然搞不清什么地方该注释,什么地方要取消注释。尤其是网上流行的各个makefile文件版本都不相同,让人十分困惑。