计算化学公社

标题: 求助:关于CPMD的编译选项问题 [打印本页]

作者
Author:
yoghurt117    时间: 2021-5-28 00:19
标题: 求助:关于CPMD的编译选项问题
本帖最后由 yoghurt117 于 2021-5-28 00:22 编辑

单机编译CPMD的时候,会出现下面几个相似的选项,前三个一般怎么选择呢?有什么区别没有,今天都试着编译了一下,倒是都成功了,不知道什么区别,运行时间上都差不多。
LINUX-AMD64-INTEL-MPI
LINUX-INTEL-INTELMPI
LINUX-X86_64-INTEL-MPI
LINUX-X86_64-INTEL-IMPI-FFTW
第四个是加入FFTW库的,前面三个怎么选择?谢谢
我装的是intel parallel xe2019,用的cpmd4.3,这个版本的编译相对来说简单点,比3.x方便多了。


下面是编译过程中出现的问题,我都记录了,有编译出类似问题的可以看看参考。
1. C编译器选项的问题,记得mint和ubuntu编译的时候会出现下面的错误,
   <https://www.gnu.org/licenses/>.  */
-----------------------------------^
kinds.mod.f90(20): error #5145: Invalid blank/tab
   include it implicitly at the start of every compilation.  It must
-----------------------------------------------------------^
..............
kinds.mod.f90(36): error #5145: Invalid blank/tab
/* wchar_t uses Unicode 10.0.0.  Version 10.0 of the Unicode Standard is
-------------------------------^
kinds.mod.f90(1): catastrophic error: Could not recover from previous syntax error
compilation aborted for kinds.mod.f90 (code 1)
make[1]: *** [/home/mint/soft/cpmd/code/4.3/CPMD//Makefile:123: kinds.mod.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/mint/soft/cpmd/code/4.3/CPMD/obj'
make: *** [Makefile:84: default,] Error 2

网上查了查,是编译器选项的问题,只需要将下列CPP中的-C去掉即可,即将:
CPP = /usr/bin/cpp -P -C -traditional
修改为:
CPP = /usr/bin/cpp -P  -traditional


2.mpif90的问题,忘了是哪个configure.sh的选项了,使用mpif90编译的时候报错改为mpiifort就可以,但是出现下面的错误,
ld: warning: libfabric.so.1, needed by /home/mint/intel/compilers_and_libraries_2019.3.199/linux/mpi/intel64/lib/release/libmpi.so, not found (try using -rpath or -rpath-link)
网上查了查,使用-rpath或者-rpath-link选项将:
LFLAGS = -static-intel -mkl=sequential
修改为
LFLAGS = -static-intel -mkl=sequential  -rpath=/home/mint/intel/impi/2019.3.199/intel64/libfabric/lib
即可,这里的/home/mint/intel/impi/2019.3.199/intel64/libfabric/lib是我机器的libfabric目录,大家按照自己机器的libfabric目录修改


3. -mkl的问题,忘了是LINUX-AMD64-INTEL-MPI,LINUX-INTEL-INTELMPI,LINUX-X86_64-INTEL-MPI,LINUX-X86_64-INTEL-IMPI-FFTW这里哪个了,生成的Makefile里面编译选项为:
LFLAGS = -static-intel -mkl=serial
将其修改为:
LFLAGS = -static-intel -mkl=sequential
就可以通过,serial应该是串行的

4.libfftw3_mpi的问题,编译的时候提示错误:
ld: cannot find -lfftw3_mpi
网上查了查,在安装fftw的时候使用--enable-mpi就可以生成libfftw3_mpi.a,可以在LFLAG中添加为:
LFLAGS = -static-intel -mkl=sequential   -L/home/mint/soft/cp2k/cp2k-7.1/tools/toolchain/install/fftw-3.3.8/lib/libfftw3_mpi.a
(在线编译过cp2k,直接用的cp2k的)




作者
Author:
jiangning198511    时间: 2021-5-28 09:06
好像目前CP2K的使用率比CPMD的高,楼主使用CPMD是想用CPMD的什么功能?
作者
Author:
yoghurt117    时间: 2021-5-28 09:34
jiangning198511 发表于 2021-5-28 09:06
好像目前CP2K的使用率比CPMD的高,楼主使用CPMD是想用CPMD的什么功能?

其实就是想用cp动力学算点东西,然后想抽空学学pimd的计算,目前在用水分子为例学习,小范围的研究

哥们你呢?
作者
Author:
jiangning198511    时间: 2021-5-28 10:09
yoghurt117 发表于 2021-5-28 09:34
其实就是想用cp动力学算点东西,然后想抽空学学pimd的计算,目前在用水分子为例学习,小范围的研究

哥 ...

我之前试着用CP2K算过一些DFT计算,同实验室的跑过一些AIMD的计算,他们也说CP2K速度很快,版本更新也快,并且例子多,也有论坛。而CPMD基本没啥动静了,感觉大有被CP2K取代的趋势
作者
Author:
sobereva    时间: 2021-5-28 10:10
CPMD大势已去,基本上CPMD能干的CP2K都能干,Hutter的开发重心都转移到CP2K去了,现在学CPMD有点49年入国军的意思
作者
Author:
yoghurt117    时间: 2021-5-28 10:44
sobereva 发表于 2021-5-28 10:10
CPMD大势已去,基本上CPMD能干的CP2K都能干,Hutter的开发重心都转移到CP2K去了,现在学CPMD有点49年入国军 ...

额.....

好吧

cpmd确实使用不方便,cp2k的确功能很多,算的很快,但是cp2k编译总出问题




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3