|
|
本帖最后由 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的)
|
|