计算化学公社

标题: Rocky9.3-AMD-7950x下用AOCC编译openmpi和VASP报错 [打印本页]

作者
Author:
雾雨魔理沙    时间: 2023-12-20 22:15
标题: Rocky9.3-AMD-7950x下用AOCC编译openmpi和VASP报错
本帖最后由 雾雨魔理沙 于 2024-1-10 15:32 编辑

求助:环境Rocky linux9.3,AMD 7950x,GLIBC:ldd (GNU libc) 2.34,gcc 版本 11.4.1,AOCC-4.1.0
参考的贴子http://bbs.keinsci.com/thread-40792-1-1.html

which clang、clang++、flang都有路径显示,但是在编译openmpi-5.0.0和openmpi-4.1.6  时均报错。错误显示:
*** C++ compiler and preprocessor
checking whether the compiler supports GNU C++... yes
checking whether /opt/aocc-compiler-4.1.0/bin/clang++ accepts -g... yes
checking for /opt/aocc-compiler-4.1.0/bin/clang++ option to enable C++11 features... none needed
checking dependency style of /opt/aocc-compiler-4.1.0/bin/clang++... gcc3
checking how to run the C++ preprocessor... /opt/aocc-compiler-4.1.0/bin/clang++ -E
checking if C and C++ are link compatible... no
**********************************************************************
* It appears that your C++ compiler is unable to link against object
* files created by your C compiler.  This generally indicates either
* a conflict between the options specified in CFLAGS and CXXFLAGS
* or a problem with the local compiler installation.  More
* information (including exactly what command was given to the
* compilers and what error resulted when the commands were executed) is
* available in the config.log file in this directory.
**********************************************************************
configure: error: C and C++ compilers are not link compatible.  Can not continue.


此报错已解决:
在此操作前需要验证下which c++和gfortran是否都有路径返回。没有则安装。
-------------------------分割线----------------------------------------------------

现在遇到了第二个问题,在对openMPI  make时,报错信息如下:
make[2]: 进入目录“/opt/openmpi-5.0.0/ompi/tools/ompi_info”
  CC       ompi_info.o
  CC       param.o
  CCLD     ompi_info
ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __extendhfsf2
>>> referenced by ../../../ompi/.libs/libmpi.so
ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __truncsfhf2
>>> referenced by ../../../ompi/.libs/libmpi.so
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Makefile:1472:ompi_info] 错误 1
make[2]: 离开目录“/opt/openmpi-5.0.0/ompi/tools/ompi_info”
make[1]: *** [Makefile:2798:all-recursive] 错误 1
make[1]: 离开目录“/opt/openmpi-5.0.0/ompi”
make: *** [Makefile:1532:all-recursive] 错误 1



-------------------------分割线----------------------------------------------------
用openMPI 4.1.6的版本上面的报错不会出现。

但是继续编译vasp时又出现了warnning,
(用的是makefile.include.aocc_ompi_aocl,BLAS、LAPACK等修改了相应路径,修改了VASP_TARGET_CPU ?= -march=znver4)

warning如下:
ld.lld: warning: parser/libparser.a: archive member 'locproj.tab.h' is neither ET_REL nor LLVM bitcode
make[2]: 离开目录“/opt/vasp/vasp.6.4.2/build/std”
make[1]: 离开目录“/opt/vasp/vasp.6.4.2/build/std”

make test 和试跑都出现了error,如下:
running    4 mpi-ranks, on    1 nodes
distrk:  each k-point on    4 cores,    1 groups
distr:  one band on    4 cores,    1 groups
vasp.6.4.2 20Jul23 (build Dec 28 2023 17:05:26) complex                        
POSCAR found type information on POSCAR C
POSCAR found :  1 types and       2 ions
scaLAPACK will be used
LDA part: xc-table for Pade appr. of Perdew
-----------------------------------------------------------------------------
|                                                                             |
|     EEEEEEE  RRRRRR   RRRRRR   OOOOOOO  RRRRRR      ###     ###     ###     |
|     E        R     R  R     R  O     O  R     R     ###     ###     ###     |
|     E        R     R  R     R  O     O  R     R     ###     ###     ###     |
|     EEEEE    RRRRRR   RRRRRR   O     O  RRRRRR       #       #       #      |
|     E        R   R    R   R    O     O  R   R                               |
|     E        R    R   R    R   O     O  R    R      ###     ###     ###     |
|     EEEEEEE  R     R  R     R  OOOOOOO  R     R     ###     ###     ###     |
|                                                                             |
|     VERY BAD NEWS! internal error in subroutine SGRGEN: Too many            |
|     elements 49                                                             |
|                                                                             |
|       ---->  I REFUSE TO CONTINUE WITH THIS SICK JOB ... BYE!!! <----       |
|                                                                             |
-----------------------------------------------------------------------------
Warning: ieee_inexact is signaling
    1
Warning: ieee_inexact is signaling
    1
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
  Process name: [[40421,1],2]
  Exit code:    1
--------------------------------------------------------------------------

请问是什么原因导致的?不知道是不是和openmpi有关,该如何解决呢?

——————更新————————
第三个问题,也就是vasp运行报错,发现只要把POSCAR晶格坐标改成——小数点后只保留3位,就可以正常跑任务!但是多一位都会报错
有老师同学知道是什么原因导致的吗?






作者
Author:
yoki_610    时间: 2023-12-22 13:32
本帖最后由 yoki_610 于 2023-12-22 13:39 编辑

会不会是没有安装gcc-c++?


作者
Author:
jim    时间: 2023-12-22 21:34
yum install c++试试,以前也好像遇到过这个问题。
作者
Author:
雾雨魔理沙    时间: 2023-12-23 11:44
yoki_610 发表于 2023-12-22 13:32
会不会是没有安装gcc-c++?

感谢!
作者
Author:
雾雨魔理沙    时间: 2023-12-23 11:47
jim 发表于 2023-12-22 21:34
yum install c++试试,以前也好像遇到过这个问题。

感谢!
作者
Author:
alanmei    时间: 2023-12-23 22:25
https://gitlab.com/x86-glibc/gli ... 2994a36ebd409ef02ce
你这个缺失的这个东西是AX512-FP16的东西,这个7950X上压根就没有啊。所以你应该把这个跳过去。
作者
Author:
yoki_610    时间: 2023-12-23 23:13
新的这个报错我也遇到过,换成了openmpi-4.1.6没有这个错误了(CPU:7b13)
作者
Author:
雾雨魔理沙    时间: 2024-1-3 15:28
alanmei 发表于 2023-12-23 22:25
https://gitlab.com/x86-glibc/glibc/-/commit/19047545e2a39c57b52262994a36ebd409ef02ce
你这个缺失的这 ...

请问应该用什么指令跳过这个呢?
作者
Author:
雾雨魔理沙    时间: 2024-1-3 22:39
本帖最后由 雾雨魔理沙 于 2024-1-3 22:41 编辑
yoki_610 发表于 2023-12-23 23:13
新的这个报错我也遇到过,换成了openmpi-4.1.6没有这个错误了(CPU:7b13)

感谢帮助!OpenMPI-4.1.6不再有报错了,不过我在编译VASP时又遇到了新的麻烦。。。
作者
Author:
yoki_610    时间: 2024-1-4 11:42
本帖最后由 yoki_610 于 2024-1-4 17:02 编辑
雾雨魔理沙 发表于 2024-1-3 22:39
感谢帮助!OpenMPI-4.1.6不再有报错了,不过我在编译VASP时又遇到了新的麻烦。。。

sorry搞错了......
作者
Author:
元无虚空    时间: 2024-1-4 13:17
yoki_610 发表于 2024-1-4 11:42
7950x不是Zen 4架构吧,你得改成-march=core-avx2

https://www.amd.com/en/product/12151

不要瞎说啊 AMD官网 7950X :Architecture: "Zen 4"
作者
Author:
元无虚空    时间: 2024-1-4 13:24
你这个gcc版本有点低,要换成13.2版本才能支持 “-march=znver4” 。我跟你一样的7950X+Rocky9.3,我的系统是gcc11/12/13并存,默认是gcc-13,编译运行任何软件从未出过问题。
作者
Author:
乐平    时间: 2024-1-4 13:39
元无虚空 发表于 2024-1-4 13:24
你这个gcc版本有点低,要换成13.2版本才能支持 “-march=znver4” 。我跟你一样的7950X+Rocky9.3,我的系统 ...

偏楼提问,请问 Rocky Linux 9.3 能否运行 Gaussian16? 另外,能否运行 M$?
作者
Author:
元无虚空    时间: 2024-1-4 15:53
乐平 发表于 2024-1-4 13:39
偏楼提问,请问 Rocky Linux 9.3 能否运行 Gaussian16? 另外,能否运行 M$?

g16很丝滑,M$没装过
作者
Author:
乐平    时间: 2024-1-5 10:06
元无虚空 发表于 2024-1-4 15:53
g16很丝滑,M$没装过

谢谢回复
作者
Author:
雾雨魔理沙    时间: 2024-1-5 14:11
元无虚空 发表于 2024-1-4 13:24
你这个gcc版本有点低,要换成13.2版本才能支持 “-march=znver4” 。我跟你一样的7950X+Rocky9.3,我的系统 ...

感谢回复,更新到了13.2(gcc --version 显示13.2),还是报同样的错。。。
作者
Author:
短耳鸮    时间: 2024-1-5 16:32
楼主,第一个问题只能通过换openmpi版本解决吗,我也遇到了相同的问题,很痛苦。
作者
Author:
雾雨魔理沙    时间: 2024-1-5 16:40
短耳鸮 发表于 2024-1-5 16:32
楼主,第一个问题只能通过换openmpi版本解决吗,我也遇到了相同的问题,很痛苦。

你是指__extendhfsf2吗?6楼说可以忽略这个定义,我觉得应该是可行的,强制忽略未定义。但是不清楚具体的指令应该怎么操作。目前也只是安装了openmpi4.1.6,但是vasp编译后还是遇到了报错,不知道是不是跟openmpi版本有关,因为看到的教程都使用的是5.0.0。同样想尝试openmpi5.0.0
作者
Author:
ChemG    时间: 2024-1-5 16:41
之前7950x装Rocky Linux 9.x一直出问题,要么系统都装不了,要么能装系统,比如mkl都会编译失败。退回Rocky Linux 8.8后基本上没有啥问题了。建议如果出现莫名的问题,可以整个闲置的硬盘装个Rocky Linux 8.8来试一试是不是系统的问题导致的。
作者
Author:
雾雨魔理沙    时间: 2024-1-5 16:42
ChemG 发表于 2024-1-5 16:41
之前7950x装Rocky Linux 9.x一直出问题,要么系统都装不了,要么能装系统,比如mkl都会编译失败。退回Rocky ...

感谢建议,我抽空试一下
作者
Author:
短耳鸮    时间: 2024-1-5 16:46
雾雨魔理沙 发表于 2024-1-5 16:40
你是指__extendhfsf2吗?6楼说可以忽略这个定义,我觉得应该是可行的,强制忽略未定义。但是不清楚具体的 ...

楼主好,我指的是这个问题, C and C++ compilers are not link compatible.  Can not continue。如果实在没办法的话可能也得试试低版本的openmpi或者使用onempi编译了
作者
Author:
雾雨魔理沙    时间: 2024-1-5 17:24
短耳鸮 发表于 2024-1-5 16:46
楼主好,我指的是这个问题, C and C++ compilers are not link compatible.  Can not continue。如果实 ...

这个你可以先检查一下gcc的c++有没有装上
作者
Author:
短耳鸮    时间: 2024-1-5 17:34
雾雨魔理沙 发表于 2024-1-5 17:24
这个你可以先检查一下gcc的c++有没有装上

谢谢提醒,但是我可能Linux基础比较差,有点不太理解,您指的是g++吗,这个是装上的。
作者
Author:
雾雨魔理沙    时间: 2024-1-5 17:43
短耳鸮 发表于 2024-1-5 17:34
谢谢提醒,但是我可能Linux基础比较差,有点不太理解,您指的是g++吗,这个是装上的。

我基础也不太好,你which c++ 和which gfortran试一下呢?我是装上后就好了
作者
Author:
lmylmy    时间: 2024-1-25 10:33
乐平 发表于 2024-1-4 13:39
偏楼提问,请问 Rocky Linux 9.3 能否运行 Gaussian16? 另外,能否运行 M$?

可以安装MS2023,正常使用。
作者
Author:
乐平    时间: 2024-1-25 10:34
lmylmy 发表于 2024-1-25 10:33
可以安装MS2023,正常使用。

谢谢回复
作者
Author:
云空    时间: 2024-2-12 19:11
请问楼主我运行vasp出现的错误一样该怎么解决呢
作者
Author:
zhaovic    时间: 2024-3-24 23:41
第三个问题我也遇到了,但是用AOCC+OpenMPI+OpenMP编译就不会出现,我怀疑是gcc的问题。
作者
Author:
chantau    时间: 2024-5-6 12:37
参考了一下官网:https://blog.vasp.at/forum/viewtopic.php?t=19390,最后一个回复,更改一下makefile.include文件就ok了,不需要退到openmpi4.1。我用的是openmpi5.0.3,AOCC+AOCL4.2,编译的VASP6.4.2。
作者
Author:
ginlpein    时间: 2024-5-11 08:26
本帖最后由 ginlpein 于 2024-5-11 08:43 编辑
chantau 发表于 2024-5-6 12:37
参考了一下官网:https://blog.vasp.at/forum/viewtopic.php?t=19390,最后一个回复,更改一下makefile.inc ...

您好,请问您使用的是什么系统?我用Rocky9.3 EPYC 7763的机子。AOCC和AOCL用的AMD官网4,2的rpm包,yum localinstall 完成安装。但是在openmpi5.0.3编译的时候make各种错误(有和楼主一样的,退回4.1.6也不管用),make/make all都过不去,根本没法make install。
请问你用的系统和机子大概是咋样的?然后你编译前的软件环境大概是啥样的?我希望能够参考一下~

被openmpi编译搞了好久,一直搞不定。。。
make时候标红主要错误比如这俩,我用gcc11和gcc13俩版本试了都这毛病。。。

clang-16: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang-16: error: no such file or directory: './.libs/libevent.so'

其他一般错误又有一堆:
make[4]: *** [Makefile:1485: prted/libprrte_la-prted_comm.lo] Error 1
make[4]: Leaving directory '/opt/openmpi-5.0.3/3rd-party/prrte/src'
make[3]: *** [Makefile:1705: all-recursive] Error 1
make[3]: Leaving directory '/opt/openmpi-5.0.3/3rd-party/prrte/src'
make[2]: *** [Makefile:801: all-recursive] Error 1
make[2]: Leaving directory '/opt/openmpi-5.0.3/3rd-party/prrte'
make[1]: *** [Makefile:1406: all-recursive] Error 1
make[1]: Leaving directory '/opt/openmpi-5.0.3/3rd-party'
make: *** [Makefile:1533: all-recursive] Error 1

make那步有些炸。。。大佬有没法子看出门道,或提供一下你的环境配置我参考一下。。。


作者
Author:
chantau    时间: 2024-5-11 15:46
ginlpein 发表于 2024-5-11 08:26
您好,请问您使用的是什么系统?我用Rocky9.3 EPYC 7763的机子。AOCC和AOCL用的AMD官网4,2的rpm包,yum l ...

我使用的也是rocky9,没有问题。请说明一下你的整个的流程,比如openmpi是否是使用aocc编译器编译的,编译前是否配置好aocc、aocl、openmpi bin、openmpi lib的环境变量。不然也不好判断。
作者
Author:
ginlpein    时间: 2024-5-11 18:43
chantau 发表于 2024-5-11 15:46
我使用的也是rocky9,没有问题。请说明一下你的整个的流程,比如openmpi是否是使用aocc编译器编译的,编 ...

编译方法参考的B站的文章,只是系统有个差别。https://www.bilibili.com/opus/870747530826088515
安装软件之前,机子是刚用rocky官网文件装完系统,然后yum安装了"Development Tools" 和 ”gcc-Toolset-13"。
aocc用的官网下载的aocc-compiler-4.2.0-1.x86_64.rpm,aocl用的aocl-linux-aocc-4.2.0-1.x86_64.rpm。
俩包安装直接用的yum localinstall安装,然后配置环境变量setenv_AOCC.sh(aocc)和amd-libs.cfg(aocl)。
环境变量配置完成,which clang clang++ flang都没问题,直接输入clang命令会反馈clang:error:no input file。而账户除这俩之外再没配置其他环境变量,剩下的都是rocky初始的和yum安装。
openmpi5.0.3 configure的时候是 ./configure CC=xxx/xxx/xx/clang CXX=xxx/xxx/xx/clang++ FC=xxx/xxx/xx/flang --prefix=xxx/xx,采用的都是绝对路径指向clang,clang++和flang。
感觉和各教程做的都没差别,gcc/c++/gfortran分别用11和13版都试了,但是make的时候都是最后显示上面哪个错误,编译不成功。
关于你说的openmpi bin和openmpi lib该如何检查?什么情况属于正常?可以的话希望不吝赐教,因为关于这俩好像都没看到有教程或其他资料显示需要关注。
作者
Author:
ginlpein    时间: 2024-5-11 18:49
chantau 发表于 2024-5-11 15:46
我使用的也是rocky9,没有问题。请说明一下你的整个的流程,比如openmpi是否是使用aocc编译器编译的,编 ...

您好,软件安装前机子是用的官网文件新按的Rocky9.3完整版,yum安了"Development Tools" 和 "gcc-Toolset-13”。
然后是参考https://www.bilibili.com/opus/870747530826088515 B站的这篇文章做的。
aocc和aocl直接用的官网rpm包yum localinstall安装。aocc和aocl环境变量配置检查没问题,初次之外没有手动配置过其他额外环境变量,只有Rocky系统初始的。
./configure CC=xxx/clang CXX=xxx/clang++ FC=xxx/flang --prefix=xxx/ 用的都是绝对路径。
然后就是make时候发生以前的报错。
作者
Author:
kkTina    时间: 2024-6-4 14:08
您好,请问您最后一个问题make的时候出现是怎么解决的
作者
Author:
雾雨魔理沙    时间: 2024-6-4 15:16
kkTina 发表于 2024-6-4 14:08
您好,请问您最后一个问题make的时候出现是怎么解决的

你好,当时是改用了openMPI 4.1.6就不出现了
作者
Author:
kkTina    时间: 2024-6-4 17:17
雾雨魔理沙 发表于 2024-6-4 15:16
你好,当时是改用了openMPI 4.1.6就不出现了

好的,谢谢!




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