计算化学公社
标题: 求助:cp2k安装出错Could not compile a Fortran program with an 'use mpi' state... [打印本页]
作者Author: qmlearner 时间: 2023-3-21 15:33
标题: 求助:cp2k安装出错Could not compile a Fortran program with an 'use mpi' state...
本帖最后由 qmlearner 于 2023-4-6 17:22 编辑
大家好,请教一一个问题:在Centos系统通过toolchain离线安装cp2k-2023,
./install_cp2k_toolchain.sh --with-sirius=no --with-openmpi=system --with-plumed=install --with-gcc=system --with-cmake=system
其中gcc/9.3.0,openmpi/4.1.1
在安装到ELPA依赖库时出现下面的错误:Configure: error: Could not compile a Fortran program with an 'use mpi' statement.
在网上找了很久也没什么头绪,请问这是怎么回事呢,非常感谢!
作者Author: beyond 时间: 2023-3-21 17:01
可以考虑不装elpa的
作者Author: sobereva 时间: 2023-3-21 23:29
如果不编译ELPA就完全正常,甭编译ELPA就完了,一般情况下结合ELPA也没什么明显益处
作者Author: qmlearner 时间: 2023-3-22 15:43
本帖最后由 qmlearner 于 2023-3-22 15:46 编辑
谢谢您,我试了一下不安装elpa,在编译cp2k的时候又出现了以下错误:
make –j 16 ARCH=local VERSION=”ssmp psmp”
Fetal Error: mkl_version.h: No such file or directory
Compliation terminated
Make[3]:*** [fftw3_lib.o] Error 1
Make[3]:*** Waiting for unfinished jobs….
但是安装依赖库的时候,出现了以下内容,说明系统里有MKL
=============Finding MKL from system paths====================
MKLROOT is found to be /zbs/intel2015/composer_xe_2015.0.090/mkl
libm is found in ld search path
libdl is found in ld search path
Step mkl took 0.00 seconds
Step fftw took 0.00 seconds.
我又重新安装了一遍依赖库(没有删除原来的build文件夹),这次加上--with-openblas=install --with-scalapack=install,如下:
./install_cp2k_toochain.sh --with-sirius=no --with-openmpi=system --with-plumed=install --with-gcc=system --with-cmake=system --with-elpa=no --with-openblas=install --with-scalapack=install
在编译的时候又出现下面的错误,也没有找到更具体的错误提示
Make[2]:*** [all] Error 2
Make[1]:*** [ssmp] Error 2
Make: *** [all] Error 2
请问这还可以怎么尝试呢?
作者Author: qmlearner 时间: 2023-3-22 15:46
谢谢卢老师,我试了一下不安装elpa,在编译cp2k的时候又出现了以下错误:
make –j 16 ARCH=local VERSION=”ssmp psmp”
Fetal Error: mkl_version.h: No such file or directory
Compliation terminated
Make[3]:*** [fftw3_lib.o] Error 1
Make[3]:*** Waiting for unfinished jobs….
但是安装依赖库的时候,出现了以下内容,说明系统里有MKL
=============Finding MKL from system paths====================
MKLROOT is found to be /zbs/intel2015/composer_xe_2015.0.090/mkl
libm is found in ld search path
libdl is found in ld search path
Step mkl took 0.00 seconds
Step fftw took 0.00 seconds.
我又重新安装了一遍依赖库(没有删除原来的build文件夹),这次加上了--with-openblas=install --with-scalapack=install,如下:
./install_cp2k_toochain.sh --with-sirius=no --with-openmpi=system --with-plumed=install --with-gcc=system --with-cmake=system --with-elpa=no --with-openblas=install --with-scalapack=install
在编译的时候又出现下面的错误,也没有找到更具体的错误提示
Make[2]:*** [all] Error 2
Make[1]:*** [ssmp] Error 2
Make: *** [all] Error 2
请问这还可以怎么尝试呢?
作者Author: beyond 时间: 2023-3-22 17:27
那就把环境变量中的MKL去掉,编译的时候加上--with -fftw=install 试试
作者Author: qmlearner 时间: 2023-3-23 10:16
我是在服务器上安装,我看了下MKL的环境变量写在/etc/profile里,是管理员设的,改不了。。
作者Author: beyond 时间: 2023-3-30 15:55
那也可以改的
echo $PATH
然后export PATH= ......
echo $LD_LIBRARY_PATH
export LD_LIBRARY=......
把有MKL的部分去掉就可以了
作者Author: qmlearner 时间: 2023-4-3 14:36
echo $PATH看到的环境变量应该都是本用户自己添加的环境变量,只对本用户有效(echo $PATH看了一下,我的环境变量里确实是没有MKL)。但我们服务器上是在/ect/profile里添加了一个对所有用户有效的MKL环境变量,所以我觉得作为普通用户应该没权限修改这个。多谢啦
作者Author: 乐平 时间: 2023-4-3 19:29
本帖最后由 乐平 于 2023-4-3 19:43 编辑
你可以找一下服务器里 Intel 编译器里的 MKL 的位置在哪里,然后自己 source 它就能调用了
比如,如果你的服务器里 Intel 编译器安装在 /share/intel2020,那么你可以
- source /share/intel2020/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl/bin/mklvars.sh intel64
复制代码
如果你的服务器上安装的是 Intel OneAPI,类似地
- source /share/oneapi2022/mkl/latest/env/vars.sh intel64
复制代码
确认是否已经调用了 MKL,可以输入
作者Author: abin 时间: 2023-4-3 19:40
还真有不专业的运维技术,
在生产环境,
使用全局设定呀!
这是多么白痴呀!
作者Author: qmlearner 时间: 2023-4-4 09:52
好滴,我去试一下,多谢老师指点
作者Author: qmlearner 时间: 2023-4-4 09:52
作者Author: qmlearner 时间: 2023-4-4 11:28
请问下大佬,如果我自己离线安装一个MKL的话,/etc/profile中的变量会把我自己的覆盖吗?就是编译cp2k的时候它会直接找/etc/profile中的MKL还是找我自己装的MKL呢?
作者Author: 乐平 时间: 2023-4-4 11:46
我在 10 楼的帖子里告诉你了呀,你可以用
命令查看你调用的是哪个 MKL
作者Author: qmlearner 时间: 2023-4-4 13:06
我的情况是管理员安装了一个MKL,并且设置成了全局变量,但是我用这个MKL编译时总是报错。所以想自己普通用户安装一个MKL,在自己本地的~/.bashrc中设置好自己安装的MKL的位置。我的问题是我本地~/.bashrc中source的优先级是否会低于/ect/profile中的优先级?
作者Author: 乐平 时间: 2023-4-4 15:08
本帖最后由 乐平 于 2023-4-4 15:10 编辑
你可以先安装试试
调用之后用 echo $MKLROOT 看看就知道调用的是哪个
或者,你现在就可以用 echo $MKLROOT 查看是否一登录就自动调用了 MKL。如果不是一登录就调用了管理员安装的 MKL,那就不存在什么优先级。
作者Author: qmlearner 时间: 2023-4-4 15:46
对的,现在一登录就是调用的管理员安装的那个
作者Author: abin 时间: 2023-4-4 16:26
自己开个虚拟机试试不就得了……
我记不住……
作者Author: 乐平 时间: 2023-4-4 16:33
本帖最后由 乐平 于 2023-4-4 16:38 编辑
emmmmmm
你联系你们集群的管理员,让他安装 environment modules,并设置好各个编译器,软件的 modulefile
官网:https://modules.sourceforge.net/
手册:https://modules.readthedocs.io/en/latest/INSTALL.html
以后调用的时候直接 module load xxx (其中 xxx 代表要调用的任何环境),不用的时候 module unload xxx
集群不设置 modules 太容易各种环境冲突,出现了问题就很麻烦。
作者Author: qmlearner 时间: 2023-4-4 16:46
刚才装了一个Intel OneAPI base,export 了一下MKL,echo $MKLROOT显示是我自己装的MKL
作者Author: qmlearner 时间: 2023-4-4 16:47
嗯嗯,刚才装了一个Intel OneAPI base,export 了一下MKL,echo $MKLROOT显示是我自己装的MKL。等我再编译一把试试看。多谢啦
作者Author: qmlearner 时间: 2023-4-4 17:07
刚才从头开始重新编译了一下,没有看到关于mkl的问题了,但是出现了xx/cp2k-2-23.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:23:7: Fatal Error: Cannot read module 'mpi.mod' opened at (1), because it was created by a different version of GNU Fortran的错误。
疯了啊,这是啥原因啊?
作者Author: 乐平 时间: 2023-4-4 17:18
确认一下 mpi 的版本
再确认一下 gcc 的版本
或者 gcc 和 openmpi 都重新用 toolchain 安装,不要用系统自带的。
- ./install_cp2k_toolchain.sh --math-mode=mkl --with-gcc=install --with-openmpi=install --with-ptscotch=install --with-superlu=install --with-pexsi=install --with-quip=install --with-plumed=install --with-libtorch=install
复制代码
作者Author: qmlearner 时间: 2023-4-4 17:27
mpi 是openmpi411,gcc是9.3.0。我看卢老师的帖子里说系统里装了openmpi,再用toolchain安装的话可能会造成冲突。怕以前装的软件也不能用了,一直没尝试用toolchain安装openmpi。
作者Author: 乐平 时间: 2023-4-4 18:07
不会冲突
作者Author: qmlearner 时间: 2023-4-6 17:49
我用toolchain安装了openmpi4.1.4,gcc还是用9.3.0,刚才测试了一下,编译成功了。多谢老师指导!
作者Author: 乐平 时间: 2023-4-9 21:52
祝贺!
由于每次运行 CP2K 的时候都需要 source 你自己安装的环境,也就是安装的时候程序提示你的
- source cp2k/tools/toolchain/install/setup
复制代码
所以你编译时候安装的 openmpi 和你之前系统里的 openmpi 不会冲突。同理,你如果安装 gcc 也不会与你系统的 gcc 冲突。
作者Author: qmlearner 时间: 2023-4-10 09:53
嗯嗯,CP2K的运行环境相当于一个自治区(只有=system的时候会用一下外援),理解了,谢谢老师!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |