| 查看: 4741 | 回复: 16 | ||||||
| 【奖励】 本帖被评价10次,作者gyty增加金币 8 个 | ||||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||||
[资源]
关于 VASP 的编译经验分享
|
||||||
|
(本文首发于 中国科学院大学 凝聚态理论与计算材料物理实验室论坛,转载请注明出处! http://tcmp2.ucas.ac.cn/bbs/-/message_boards/view_message/34944) 关于 VASP 的编译,最近有一些心得体会,写出来抛砖引玉,与大家共享: 1) 首先是编译环境的配置: VASP 并行版本的编译(串行版本的不常用)需要如下工具: Intel Fortran Compiler : ifort 并行编译器:mpif90 或者 mpiifort 数学库:一般常用Intel MKL,如果有其他的当然也可以 关于 Fortran 编译器,我们一般Intel架构的机器好像只能使用ifort来编译,如果使用GNU开发的gfortran编译,就是一个大大的杯具。从Intel 官网上可以下载Fortran编译器: http://software.intel.com/en-us/ ... -evaluation-options 安装Fortran 编译器的时候好像会自动把MKL安装上,很是省事。当然,编译器和数学库的安装是需要许可证的,这个事情 … 大家都是盗版砖家,神通广大,深藏不露,这里我就不罗嗦了!其实Intel会有提供30天的试用版本,可以尝试。 关于并行编译器,可以使用 openmpi mpich IntelMPI 等等,安装的事情我不想多说了,DEB系列的系统直接apt-get install,其他系列的我不是很了解。当然可以从源代码编译安装,或者比如Intel的并行开发运行环境,从官网或者其他途径下载安装包,安装起来应该不是特别复杂。 需要注意的是,使用哪种MPI编译,就要使用对应的mpirun来并行运行,它们互相之间好像是不兼容,记得好好设置 PATH LD_LIBRARY_PATH 两个变量。VASP 运行时是一扑成吊丝,还是一飞成高富帅,它们有关键性的作用。 2) 关于 VASP 的编译 1. 在 vasp.x.lib 中执行 make,可能需要先把 makefile.linux_ifc_P4 复制为 makefile ,并将其中的 FC=ifc 改为 FC=ifort。 这一步应该是非常easy的! 2. 接下来的才是重头戏,切换工作目录到 vasp.x.x ,就是VASP源代码,在这里,首先要好好地修改 makefile: 同样,我们从 makefile.linux_ifc_P4 开始,把它复制为 makefile ,然后用纯文本编辑器,比如VIM,打开。其中几个比较关键的变量给出设置模板如下: FC=mpiifort -heap-arrays MKLPATH=/share/apps/Intel.Fortran.Compiler.2013.1.117/mkl FFLAGS = -I$(MKLPATH)/include/fftw -FR -lowercase -assume byterecl BLAS= -L$(MKLPATH)/lib/intel64 -lmkl_sequential -lmkl_core -lmkl_intel_lp64 LAPACK= -L$(MKLPATH)/lib/intel64 -lmkl_sequential -lmkl_core -lmkl_intel_lp64 SCA= -L$(MKLPATH)/lib/intel64 -lmkl_scalapack_lp64.a -lmkl_blacs_intelmpi_lp64.a 或者 SCA= -L$(MKLPATH)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 另外,关于FFT函数库,有两种选择,对于以前的Intel数学库,好像只支持 FFT3D = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o 而2013年新的数学库支持一个更快的FFT函数库,这时可以采用如下设置: FFT3D = fftmpi.o fftmpi_map.o fftw3d.o fft3dlib.o 可能需要针对 fftw3d.o 设置特殊的编译规则: fftw3d.o : fftw3d.F $(CPP) $(FC) -I$(MKLPATH)/include/fftw -FR -lowercase -O1 $(INCS) -c $*$(SUFFIX) 或者干脆直接设置 INCS = -I$(MKLPATH)/include/fftw 关于 makefile 中变量的设置,就说这么多。这里面的事情,参考着上面给出的示例,自己捉摸一下应该没有太大的问题,都懂的,说太多就没意思了,点到为止。 好吧,再唠叨几句: 如果不是使用 mpiifort 来编译的话,比如是 mpif90,记得将其调用的 fortran 编译器设置为 ifort 。有两种方式:一是重新编译并行编译器,在编译选项中指定其调用的Fortran编译器,这种方式可能有点麻烦;二是采用比较取巧的方法,由于mpif90默认调用gfortran作为Fortran编译器,那我们做一个符号链接就可以了:gfortran -> ifort。另外需要注意的是,可能同时得修改 BLAS LAPACK 和 SCA 变量中的部分链接库名字,详情请参考 makefile ,因为其中默认是使用 mpif90 编译器。 到这里,关于makefile的修改应该就差不多了,保存退出后执行 make ,如果人品足够好,一般等上十分钟二十分钟的就可以得到编译好的可执行 vasp 二进制文件。这里有一个小技巧:直接执行make编译是顺序进行的,如果使用 make -j N ,则可以同时并发N个编译,速度会快上很多(N倍?)。但是由于makefile中没有针对并发编译做特殊的处理,所以这样操作很容易出错。当然,出来混,拼的就是人品!如果出错退出了,不用捉急,一般是由于编译过程的冲突导致的,再执行make顺序编译过这一段,接下来再并发编译,照样是可以的。 最后,编译过程中遇到问题的时候,不要难过,搞个两三天才编译通过是很正常的事情,要淡定,要多上网搜,要多看VASP the GUIDE中的第三节:The installation of VASP,其中有很详细的解释。另外,VASP the GUIDE中有一些关于优化执行效率的讨论,很有参考价值,要深入学习,领会精神! 祝编译顺利,VASP开发小组与我们同在! 2013-06-15 秦光照 |
» 收录本帖的淘帖专辑推荐
VASP | @个人收集@ | VASP资料 | Vasp 安装 |
» 猜你喜欢
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
孩子确诊有中度注意力缺陷
已经有6人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
» 本主题相关商家推荐: (我也要在这里推广)
» 本主题相关价值贴推荐,对您同样有帮助:
vasp 编译专用的可执行文件
已经有15人回复
VASP会用到一些编程程序么???
已经有9人回复
vasp5.3.3并行编译出错
已经有10人回复
vasp 编译主程序时候出错,求好心人看一下
已经有17人回复
求问vasp5.2.12在redhat上的编译
已经有5人回复
vasp串行,并行编译成功,但很奇怪。
已经有23人回复
单机编译安装vasp求指导
已经有10人回复
【已解决】VASP内存占用疯涨……看来得重新编译了……
已经有14人回复
求助vasp编译好后无法运行问题??
已经有24人回复
请问vasp计算时只用一个gamma点 和 使用Gamma point-only VASP编译版本 有什么区别?
已经有15人回复
使用PGI编译VASP中无法使用长数组
已经有5人回复
编译vasp主程序时,makefile中的链接库选择问题
已经有15人回复
vsap 5.2 环境和编译问题
已经有14人回复
【求助】VASP5.2 编译出错make: *** [vasp] 错误 1,请大家帮忙分析分析,谢谢
已经有7人回复
【求助】VASP考虑自旋轨道耦合的话,如何编译
已经有17人回复
【求助】VASP 编译出错
已经有24人回复
11楼2014-08-27 00:42:14
2楼2013-06-15 17:01:30
6楼2013-06-18 22:42:06
8楼2014-08-26 14:38:01













回复此楼

谢谢经验分享,试试看
呀呀!