计算化学公社

标题: 使用新版Intel oneMKL在编译和测试QE时出现的问题 [打印本页]

作者
Author:
UW_0728.    时间: 2025-3-23 17:59
标题: 使用新版Intel oneMKL在编译和测试QE时出现的问题
本帖最后由 UW_0728. 于 2025-3-23 18:58 编辑

本人编译QE7.4.1版本,预先安装有Open MPI 5.0.7版本,之前安装CP2K也装有openblas等库。按照卢老师的帖子“Quantum ESPRESSO在Linux下的安装方法 - 第一性原理 (First Principle) - 计算化学公社”安装时,第二步是安装Intel MKL(“为了让QE能利用效率很高的MKL数学库来提升计算速度,应当在编译QE前先把MKL装上”),而目前Intel MKL在官网上已经更为Intel oneMKL,可下载的最新版本为2025.0.1,目前已安装好且配置好环境变量(source /home/uw/intel/oneapi/mkl/2025.0/env/vars.sh)。
接下来到QE源代码文件夹里执行“./configure”指令,出现以下信息:
checking for library containing dgemm... no
MKL not found
in /home/uw/intel/oneapi/mkl/2025.0/lib/intel64: checking for library containing dgemm... no
MKL not found
......
最后的配置结果为
The following libraries have been found:
  BLAS_LIBS= -lopenblas
  LAPACK_LIBS=-L/home/uw/OpenMPI/lib  -lopenblas
  FFT_LIBS= -lfftw3
  MPI_LIBS= -lmpi
并没有调用MKL库。
后来,调整了OpenMPI的安装路径到/opt/下,并换用了Intel® Fortran Essentials(包括oneMKL和ifx两部分,考虑到intel处理器下ifx可能比gfortran更快;安装在/opt/下),发现configure时可以识别MKL库(后来发现是偶然原因):
原先有MKL not found提示的地方显示为:
checking for library containing dgemm... -lmkl_gf_lp64
并显示如下结果:
The following libraries have been found:
  BLAS_LIBS=  -lmkl_gf_lp64  -lmkl_sequential -lmkl_core
  LAPACK_LIBS=
  SCALAPACK_LIBS=-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64
  FFT_LIBS=
接下来的编译非常顺利。然而,在测试时,虽然任务能顺利结束,但JOB DONE. 后面还会紧接一行:
Note: The following floating-point exceptions are signalling: IEEE_DIVIDE_BY_ZERO
请问这种问题是哪一个环节出现的?可以在任务运行成功的前提下忽略吗?谢谢解答!






作者
Author:
rabbitkiller    时间: 2025-3-23 19:26
看一下环境变量MKLROOT有没有赋值
作者
Author:
UW_0728.    时间: 2025-3-23 19:33
rabbitkiller 发表于 2025-3-23 19:26
看一下环境变量MKLROOT有没有赋值

有的,export MKLROOT=/opt/intel/oneapi/mkl/2025.0
作者
Author:
UW_0728.    时间: 2025-3-23 19:35
UW_0728. 发表于 2025-3-23 19:33
有的,export MKLROOT=/opt/intel/oneapi/mkl/2025.0

但是按理来说有了source vars.sh这样的命令应该不需要这个
作者
Author:
rabbitkiller    时间: 2025-3-23 19:43
UW_0728. 发表于 2025-3-23 19:35
但是按理来说有了source vars.sh这样的命令应该不需要这个

感觉是编译器的问题。以前用gcc编译过qe,也有过类似经历,就是计算结束后出现一堆警告信息……我就忽略它们了
作者
Author:
Shana    时间: 2025-4-17 22:02
rabbitkiller 发表于 2025-3-23 19:43
感觉是编译器的问题。以前用gcc编译过qe,也有过类似经历,就是计算结束后出现一堆警告信息……我就忽略 ...

这个IEEE_DIVIDE_BY_ZERO挺致命的,会造成部分计算结果出现较达的数值浮动。




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