vasp 安装心得(精选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
Hello, world, I am
of
Hello, world, I am
of
Hello, world, I am
of
Hello, world, I am
of
Hello, world, I am
of
Hello, world, I am
of
Hello, world, I am
of
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文件版本都不相同,让人十分困惑。makefile文件非常简单,把注释都拿掉了之后就变成:.SUFFIXES:.inc.f.f90.F(*)SUFFIX=.f90(*)
FC=/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort FCL=$(FC)CPP_ =./preprocess <$*.F | /usr/bin/cpp-P –C-traditional > $*$(SUFFIX)CPP = $(CPP_)-DHOST=“LinuxIFC”
-DCACHE_SIZE=12000-DPGF90-Davoidalloc
-DRPROMU_DGEMV-DRACCMU_DGEMV FFLAGS =-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 $(LAPACK)$(BLAS)FFT3D =
*)(---#mpi-----FC=/usr/local/bin/mpif90 FCL=$(FC)CPP = $(CPP_)-DMPI-DHOST=“LinuxIFC”-DIFC-DCACHE_SIZE=8000-DPGF90-Davoidalloc-DNGZhalf-DMPI_BLOCK=8000-DRPROMU_DGEMV-DRACCMU_DGEMV BLAS= LAPACK= SCA= LIB =-L../vasp.5.lib-ldmy
../vasp.5.lib/linpack_double.o $(LAPACK)
$(SCA)$(LAPACK)$(BLAS)FFT3D = 这份文件可以分为两部分,前半部分有大量的注释,有很多参数路径之类的需要手动调整。后半部分是编译文件的部分,调用各种程序来编译VASP,而我们关心的只是文件的前半部分。以上列出的是文件前半部分不带注释的内容,我标了(*)的地方,在文件的前半部分中是唯一的,必须要写的。不带(*)的地方,可以分为两部分,每个部分都一模一样,分别是: FC= FCL= CPP= BLAS= LAPACK= SCA= LIB= FFT3D = 可以对照着一份完整的makefile文件看一下,FC=FCL是指定的编译程序,串行是ifort,并行是mpif90.cpp是可带参数的相当于gcc的命令,貌似用来预处理?BLAS、LAPACK是相应库函数的路径,最终都会被包含在LIB路径下面(注意到LIB=最后有$(LAPACK)$(BLAS)),还有就是独立的FFT3D。整个makefile的前半部分就是在选择参数和路径,用于后半部分的文件编译。带(*)的部分是必须有的,可以认为是基本参数。其余部分很明显是并行和串行编译的命令,编译的时候选其中一组就行。这一部分实际上就传递了四个变量而已,分别是编译器FC,预处理命令CPP,库函数路径LIB和FFT3D,注意到串行和并行的FFT3D文件是不一样的。BLAS、LAPACK已经被包括在了LIB中,makefile文件的后半部分是没有这两个变量的。所以这份文件就非常好理解了,串行和并行有各自独立的四个变量,调试好带(*)的基本参数,选好串行或者并行编译,其余部分注释掉就OK。
现在更改库文件之类的操作就很好理解了,我使用GotoBLAS编译的,只要把相应字段的路径改成MKL的,就是MKL编译。(5.2版本作者还推荐GotoBLAS,但是5.3版本就推荐全部改用MKL库文件)
很多人虽然编译出来了,但是没有很好的理解这份文件,注释的地方十分混乱。甚至我看过一份makefile文件,把串行和并行的字段全都取消了注释,虽然最后也能成功编译,但是显然有运气成分。这里特别感谢chuanghua304给的makefile文件,我就是参考他的文件才首次编译成功的。
至于编译时附带的参数在这里就不讨论了。我不是搞编程的,参数怎么添加,如何优化完全不懂。我是看了几个版本的makefile文件,大家怎么加参数,我也怎么加参数。最后说一点感想,这五天装机器学到的东西实在太多了。之前只是勉强会一点啊linux的基本操作,经过了这几天的折磨,熟练了linux的操作,学会了怎么装各种程序,以及出错了怎么解决。Linux出错真的非常恶心人,错误千奇百怪,经常还是因为环境变量设置不正确造成的。还有就是出错了一定要google,百度非常不靠谱。openmpi缺少mpivars.sh的错误就没一个中文答案是对的,反而有很多英文论坛给出了正确的解决方法。还有最终重要的一点就是要学会自己思考,每一步都要想为什么这么做才能有提高。老是跟着这些教程帖子,亦步亦趋,就算装上了也不会有什么收获。
1 收货验货
仔细地完成收货和验货可以有效地避免一些不必要的纠纷。每部发射机出货时都会含有一份出货清单。发射机被运到机房之后,应按清单所列内容清点和检查货物。当货物和清单一致时,则可以小心地打开发射机的包装进行外观和内部电气上的检查,确保在运送的过程中发射机没有受到损坏。这里特别要注意的是,在确认货物完整和没有任何损坏之前应保留相关装运材料,若出现货物不完整或受到物理、电气损坏时,应立即联系厂家和运送单位处理。此外,还应注意相关技术资料是否完善。一般发射机出厂时应至少含有三份资料:技术手册、出厂测试数据和原理图。学习技术手册可以帮助技术人员快速掌握设备的安装、使用和维护技能,对比出厂测试数据可以方便排查设备故障,研究原理图能够更加深入地了解设备各电路的工作原理和具体线路,这些都是十分重要和必要的。
2 发射机的安装
当收货验货完毕,学习并掌握了设备的相关技术资料后则开始安装发射机。发射机安装通常按照以下顺序完成。
2.1 发射机的放置。
为保证设备的运行稳定可靠,应当水平紧固。此外,还应避免可能受到的撞击、过度震动、灰尘、水、含盐分的空气和酸性气体的侵袭,并在机器四周预留足够的检修空间。以FAX 10K发射机为例,其要求工作在0~50℃的环境中,空气相对湿度在5~95%之间且不凝结。
2.2 通风和冷却系统。
FAX系列发射机使用多个风机提供强制空气冷却,以排除信号产生和放大过程中生成的热量。在安装的过程中,应注意在其入风口和出风口预留至少15 cm以上的空间。一般情况下,发射机房相应的冷却系统分为两种:开放式和封闭式。开放式系统采用户外空气进行冷却,成本低,适合于机房外部空气质量较好的地方使用。当使用开放系统时,应注意对吸入的户外空气进行过滤,若使用管道还应在管路中安装增压设备以确保风量供给充足。而封闭式系统成本较高,采用空调等制冷设备进行冷却,一般适合空气盐分高、酸性高或其他空气污染严重的地方。当使用封闭式系统时,其制冷量应充分考虑各种因素的影响,并预留充足的余量,有条件的单位甚至可以配备主、备冷却系统交替循环使用。
2.3 接地。
FAX系列发射机需要两种单独的接地:交流安全接地和射频接地。交流安全接地可以避免潜在的触电危险,比如内部带电单元裸露的金属表面导通漏电,因此必须要确保交流电源端的物理接地端子与地之间有可靠连接。射频接地可以使设备避免遭受雷击引起的损坏和降低射频干扰。有条件的单位,安全接地和射频接地应当分开。安全接地可直接采用多股地线连接,其线径>2.5cm2,接地电阻值<10Ω。射频地应采用扁平铜带进行连接,接地电阻值<1Ω。有的单位只有一个公共地,则应将保安地和射频地都连接在此地网上。
2.4 内部布线。
发射机周边存在着高频率的强辐射,因此,在布线时应尽量采用外部带有屏蔽层的电缆进行连接,并且在线缆两端进行可靠接地。有条件的单位还可以将信号线装入金属线槽中以加强屏蔽效果。只有这样才能有效地避免射频干扰,减少因此产生的数字/控制电路间歇性跳动以及音/视频等模拟信号噪声等问题。
2.5 交流电源连接。
在进行电源连接时应当根据图纸和设备实际确认相应的连接方式和对应规格的电缆。一般电源主要有三种连接方式:(1)单相连接,电压为190~264 VAC;(2)三相“三角形接法”,电压为190~264 VAC;(3)三相“星形接法”,电压为330~460 VAC。本机主要采用三相“星形接法”,并以10cm2的电缆进行连接。此外,有条件的单位还可以在电源入端安装浪涌保护器,减少因雷击或电源突变对发射机造成的损害。
2.6 射频连接。
发射机运行之前必须连接至测试良好的天线或假负载上,当连接到假负载时要求驻波比<1.05,连接天线时要求<1.2,线缆阻抗均为50Ω。一般10 kW发射机采用1-5/8的法兰进行连接,20 kW发射机采用3-1/8法兰进行连接,注意应根据发射机接头和功率选购合适的馈线。
2.7 线缆连接。
按照技术手册和图纸标记对发射机内部各控制和射频线缆进行连接,并安装可插拔的功放和电源模块等组件。
2.8 遥控连接。
FAX系列发射机提供完备的远程控制手段,不仅提供有模拟电平测量和开关控制端子排,也可以使用IE浏览器通过其网络接口直接登陆对应的图形化操作界面进行控制。
2.9 第一次开机。
根据图纸复查各部件和线缆都安装正确,各设置开关也均处于所需位置后则可以开机测试。首先,送电并检查各指示灯是否正常;其次,对发射机工作模式、输出功率和频率、时间日期进行设置,使其工作在所需状态;最后,开机并按照额定功率预热30min,使用红外测温仪检查交流电源、隔离开关、断路器、馈线是否存在局部温度过高等异常,读取发射机各仪表值,对比是否与出厂数据接近。测试均正常后方可投入使用。
3 后期维护
科学的维护可以有效减少发射机故障,提高其可靠性和工作寿命,因此后期维护也是十分重要的。通过参考技术手册,我们主要制定了以下措施。
3.1 备齐螺丝刀、套筒扳手等检修所用的各种常用工具,采购了万用表、整机功率计、示波器、频率计、频谱分析仪等几种常用的检修仪器。
3.2 建立发射机状态记录本,每天至少记录一次,时刻关注发射机各参数和状态的变化。
3.3制定日常维护计划(如下表1), 并建立维护记录本,认真记录每次维护项目和相关维护人员,填写故障时的详细现象和处理办法,登记更换模块或维修零部件的详细位置和编号。若遇电路改动的,则应对发射机图纸进行相应的修改。每年度还应根据设备出现的故障、 周边环境的变化对该计划进行修改和完善,使其更加科学有效。
3.4购置充足备件,制定相关的故障应急方案,以应对发射机出现异常时的需要,尽可能地减少因设备故障而造成的停播时间。有条件的单位还应购置相应的备份机,实现一台或多台备份。
4 结语
【vasp 安装心得】推荐阅读:
安装建设公司新入职员工实习心得05-30
教学楼安装安装空调的说明10-24
安装栏杆请示06-02
安装工具材料06-04
安装电梯申请06-08
安装补充协议06-28
加工安装合同07-09
三电安装方案09-11
安装承包12-16
安装规范流程01-05