请选择 进入手机版 | 继续访问电脑版
第13届北京科音初级量子化学培训班将于10月5~8日于北京举办,请点击此链接查看详情。这是新人一次性正确、完整学习量子化学计算的最好、最快机会,能少走无数弯路,欢迎参加并相互转告!(已报满)

计算化学公社

 找回密码
 现在注册!
查看: 296|回复: 14

[CP2K] CP2K-7.1编译出错:vdwxc_init_mpi - not found

[复制链接]

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

发表于 2020-8-30 11:52:03 | 显示全部楼层 |阅读模式
大家好,最近在编译cp2k-7.1遇到一些问题,希望得到大家帮助!

我是根据刘老师 https://www.bilibili.com/video/BV1Y54y1e7Yx 的视频一步一步来编译的,系统是Centos8 (Linux version 4.18.0-193.14.2.el8_2.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)))。gcc,g++, gfortran版本都是官网推荐的8.3.1。利用install_cp2k_toolchain.sh这个脚本来编译:


./install_cp2k_toolchain.sh \

--math-mode=mkl \

--with-openmpi=install \

--with-scalapack=no

但是到了安装SIRIUS的时候报错:
==================== Installing SIRIUS ====================
sirius_6.4.1.tar.gz is found

Installing from scratch into /opt/cp2k-7.1/tools/toolchain/install/sirius-6.4.1

ERROR: (./scripts/install_sirius.sh, line 130) Non-zero exit code detected.

...
*.log等重要输出文件已经上传,看起来好像是找不到vdwxc_init_mpi的问题,不知道怎么解决。

这是compile.log的最后一部分:
...
-- Checking for one of the modules 'elpa;elpa_openmp'
-- Found Elpa: /opt/cp2k-7.1/tools/toolchain/install/elpa-2019.05.001/lib/libelpa.a  
-- Checking for one of the modules 'libvdwxc>=0.3.0'
-- Looking for vdwxc_init_mpi
-- Looking for vdwxc_init_mpi - not found
CMake Error at /opt/cp2k-7.1/tools/toolchain/install/cmake-3.15.1/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find LibVDWXC (missing: LIBVDWXC_LIBRARIES) (Required is at least
  version "0.3.0")
Call Stack (most recent call first):
  /opt/cp2k-7.1/tools/toolchain/install/cmake-3.15.1/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindLibVDWXC.cmake:35 (find_package_handle_standard_args)
  CMakeLists.txt:198 (find_package)
...

这是CMakeError.log的最后输出:
...
Linking C executable cmTC_1450c
/opt/cp2k-7.1/tools/toolchain/install/cmake-3.15.1/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1450c.dir/link.txt --verbose=1
/opt/cp2k-7.1/tools/toolchain/install/openmpi-4.0.1/bin/mpicc -O2 -ftree-vectorize -g -fno-omit-frame-pointer -march=native -m64     CMakeFiles/cmTC_1450c.dir/CheckSymbolExists.c.o  -o cmTC_1450c
CMakeFiles/cmTC_1450c.dir/CheckSymbolExists.c.o: In function `main':
/opt/cp2k-7.1/tools/toolchain/build/SIRIUS-6.4.1/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8: undefined reference to `vdwxc_init_mpi'
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_1450c.dir/build.make:87: cmTC_1450c] Error 1
gmake[1]: Leaving directory '/opt/cp2k-7.1/tools/toolchain/build/SIRIUS-6.4.1/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:121: cmTC_1450c/fast] Error 2

File /opt/cp2k-7.1/tools/toolchain/build/SIRIUS-6.4.1/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include </opt/cp2k-7.1/tools/toolchain/install/libvdwxc-0.4.0/include/vdwxc_mpi.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef vdwxc_init_mpi
  return ((int*)(&vdwxc_init_mpi))[argc];
#else
  (void)argc;
  return 0;
#endif
}

本人新手,如果还需要提供什么资料请告知~谢谢大家了!












CMakeCache.txt

39.04 KB, 下载次数: 0

CMakeOutput.log

270.46 KB, 下载次数: 0

CMakeError.log

1.9 KB, 下载次数: 0

compile.log

3.92 KB, 下载次数: 1

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 2020-8-31 07:52:53 | 显示全部楼层
顶~

4

帖子

0

威望

315

eV
积分
319

Level 3 能力者

发表于 2020-9-2 10:26:34 | 显示全部楼层
Checking for one of the modules 'libvdwxc>=0.3.0'

没找到libvdwxc这个包, --with-libvdwxc=yes

不过还是建议不装sirius     --with-sirius=no

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 2020-9-2 15:16:10 | 显示全部楼层
nicheal 发表于 2020-9-2 10:26
Checking for one of the modules 'libvdwxc>=0.3.0'

没找到libvdwxc这个包, --with-libvdwxc=yes

谢谢你啊,按照你的方法 (--with-sirius=no \ --with-libvdwxc=install)试了下,虽然通过编译,但是测试cp2k却是失败的:
我在toolchain\里面输入:
cp /opt/cp2k-7.1/tools/toolchain/install/arch/* ../../arch/
source /opt/cp2k-7.1/tools/toolchain/install/setup
然后回到cp2k目录,依次输入:
make -j 112 ARCH=local VERSION="popt psmp"
make -j 112 ARCH=local VERSION="popt psmp" test
结果是完全失败的
--------------------------------- Summary --------------------------------
Number of FAILED  tests 2789
Number of FAILED  tests 2789
Number of WRONG   tests 0
Number of WRONG   tests 0
Number of CORRECT tests 0
Number of CORRECT tests 0
Number of NEW     tests 0
Number of NEW     tests 0
Total number of   tests 2789
GREPME 2789 0 0 0 2789 X
Total number of   tests 2789
GREPME 2789 0 0 0 2789 X

Summary: correct: 0 / 2789; failed: 2789; 0min
Status: FAILED

--------------------------------------------------------------------------
Regtest took 29.00 seconds.
--------------------------------------------------------------------------

Summary: correct: 0 / 2789; failed: 2789; 0min
Status: FAILED
--------------------------------------------------------------------------

我编译的完整命令是:
./install_cp2k_toolchain.sh \
--math-mode=mkl \
--with-openmpi=install \
--with-scalapack=no \
--with-ptscotch=install \
--with-parmetis=install \
--with-metis=install \
--with-superlu=install \
--with-pexsi=install \
--with-quip=install \
--with-plumed=install \
--with-sirius=no \
--with-libvdwxc=install

感觉这个sirius很重要的~

4

帖子

0

威望

315

eV
积分
319

Level 3 能力者

发表于 2020-9-5 19:56:22 | 显示全部楼层
如果所有的测试都失败,通常不是cp2k的问题,你看看是不是在root下面运行的啊,如果是,openmpi在root下运行会直接出错.
修改tools/regtesting/do_regtest的24行
mpiexec="mpiexec --allow-run-as-root --bind-to none"

4

帖子

0

威望

315

eV
积分
319

Level 3 能力者

发表于 2020-9-5 19:58:54 | 显示全部楼层
本帖最后由 nicheal 于 2020-9-5 20:00 编辑

https://www.bilibili.com/read/cv7375723
关于编译,可以看看这一些帖子

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 2020-9-6 09:04:50 | 显示全部楼层
nicheal 发表于 2020-9-5 19:58
https://www.bilibili.com/read/cv7375723
关于编译,可以看看这一些帖子

非常感谢你的帮助,按照你的要求试了下,编译成功了,但是测试仍然有很多失败,主要是并行运算的原因:

Summary of the regression tester run from 2020-09-04_23-09-23 using local popt
Number of FAILED  tests 594
Number of WRONG   tests 104
Number of CORRECT tests 2570
Number of NEW     tests 7
Total number of   tests 3275

--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
EXIT CODE:  1  MEANING:  RUNTIME FAIL
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我用是mpirun (Open MPI) 4.0.2版本,不知道是不是版本的原因呢?

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 6 天前 | 显示全部楼层
问题已解决,编译器版本的问题~大家一定要按照推荐版本编译,祝好!

10

帖子

0

威望

25

eV
积分
35

Level 2 能力者

发表于 5 天前 | 显示全部楼层
haibeih 发表于 2020-9-14 08:24
问题已解决,编译器版本的问题~大家一定要按照推荐版本编译,祝好!

想问下,请问你换到了哪一个版本的GCC?

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 5 天前 | 显示全部楼层
美式加糖 发表于 2020-9-15 10:25
想问下,请问你换到了哪一个版本的GCC?

官网推荐的9.3~另外也建议用Centos7吧,Centos8目前编译出来还是有些错误

10

帖子

0

威望

25

eV
积分
35

Level 2 能力者

发表于 5 天前 | 显示全部楼层
haibeih 发表于 2020-9-15 11:02
官网推荐的9.3~另外也建议用Centos7吧,Centos8目前编译出来还是有些错误

好的,谢谢。我这边是centos 7.4和gcc9.3.0,但是在编译的时候出现报错还没解决。请问一下,你用的mkl是什么版本的

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 4 天前 | 显示全部楼层
美式加糖 发表于 2020-9-15 15:11
好的,谢谢。我这边是centos 7.4和gcc9.3.0,但是在编译的时候出现报错还没解决。请问一下,你用的mkl是 ...

你是什么错误啊,关于什么的报错?

我是2020版本的mkl(https://software.intel.com/conte ... ython-yum-repo.html),输入命令:
yum install intel-mkl-2020.0-088
source /opt/intel/compilers_and_libraries_2020/linux/mkl/bin/mklvars.sh intel64 ilp64

你的python也是gcc9.3.0编译的吗?若果不是也会有问题~

10

帖子

0

威望

25

eV
积分
35

Level 2 能力者

发表于 3 天前 | 显示全部楼层
haibeih 发表于 2020-9-16 08:03
你是什么错误啊,关于什么的报错?

我是2020版本的mkl(https://software.intel.com/content/www/us/e ...

你好。我这里的报错是在最后cp2k编译阶段,我设置了mkl2015版,但是最后不知为何会去调用atlas-math。atlas-math要使用libgfortran.s.o.3,但是gcc-9.3已经更新到.5版本了,导致产生冲突报错。详情我也有发帖,但应该不是普遍问题,我正在尝试解决

我使用的python是用anaconda配置的,但好像目前问题不是出在这里。

14

帖子

0

威望

253

eV
积分
267

Level 3 能力者

 楼主| 发表于 3 天前 | 显示全部楼层
美式加糖 发表于 2020-9-17 16:15
你好。我这里的报错是在最后cp2k编译阶段,我设置了mkl2015版,但是最后不知为何会去调用atlas-math。atl ...

刚刚看了你的贴子,有些不成熟的建议:
(1)你试过mkl-2020吗?
(2)你的gcc,g++,和gfortran版本一致吗(输入gcc -v;  g++ -v; gfortran -v)
(3)觉得这种报错很可能是编译器的问题,建议你重新下载个python(https://www.python.org/downloads/release/python-385/),用gcc编译并且设置路径,然后再去编译cp2k。
我觉得重新来一遍比你纠结这个libgfortran.so.5的问题容易,因为即使你现在编译通过,我敢保证你接下来的tests肯定不理想。

10

帖子

0

威望

25

eV
积分
35

Level 2 能力者

发表于 前天 08:57 | 显示全部楼层
haibeih 发表于 2020-9-17 17:09
刚刚看了你的贴子,有些不成熟的建议:
(1)你试过mkl-2020吗?
(2)你的gcc,g++,和gfortran版本一 ...

好的,非常感谢。
我昨天晚上也装好了mkl-2020,gcc我这边三个版本是可以确定的,都是9.3.0,python我也准备自己手动装一下
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2020-9-20 16:23 , Processed in 0.166457 second(s), 27 queries .

快速回复 返回顶部 返回列表