计算化学公社

标题: 测试QE时遇到的问题 [打印本页]

作者
Author:
lqyang    时间: 2025-5-14 15:50
标题: 测试QE时遇到的问题
大家好,我在Windows11上用wsl安装了Ubuntu 22,然后按照社长的http://bbs.keinsci.com/thread-18600-1-1.html这篇博文进行QE的安装,出现以下几点问题。
一、编译QE阶段
目标:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/compilers_and_libraries_2020.2.254/linux/mkl/lib/intel64_lin
我的Intel下面没有这个文件,只有~/intel/oneapi/mkl/2025.1/lib/intel64这个,intel64_lin和intel64是一回事嘛?
二、测试QE阶段
1、“先测试纯MPI并行方式运行。进入diamond目录后,运行以下命令,使用4个MPI进程计算,每个MPI进程下属只有一个线程。
export OMP_NUM_THREADS=1
mpirun -n 4 pw.x < pwscf.in |tee pwscf.out
结果中没有出现JOB DONE,而是报错,如下图:
(, 下载次数 Times of downloads: 14)
2、“然后测试试纯OpenMP并行方式运行。运行以下命令,将使用一个MPI进程下属4个OpenMP线程进行计算
export OMP_NUM_THREADS=4
pw.x < pwscf.in |tee pwscf.out
结果显示JOB DONE,这是为啥?这意味着QE编译是成功了还是没成功?
3、“使用QE自带的测试集进行测试。做法是进入QE解压后的目录的test-suite子目录,在里面运行make run-tests-parallel命令,就会在并行运算下对所有任务进行测试,每一项对应的含义见此目录下的README。如果只想测试比如PWscf模块,则运行make run-tests-pw-parallel。
结果显示均是failed,这是什么原因导致的?
(, 下载次数 Times of downloads: 16)
请求指点,谢谢大家:)



作者
Author:
hahajisuanxuexi    时间: 2025-5-14 19:17
本帖最后由 hahajisuanxuexi 于 2025-5-14 19:19 编辑

我是用wsl2的ubuntu24来装qe的,用的是cmake安装方式(https://gitlab.com/QEF/q-e/-/wikis/Developers/CMake-build-system),使用的编译器和数学库都是intel,qe的mpirun和openmp可以正常使用。
我的~/intel/oneapi/mkl/2025.1/lib/文件夹中只有intel64,没有intel64_lin。
你在mpirun时报的错"prterun………………"我在测试其他程序的并行运行时也遇到过,应该和你没有正确编译mpirun版本有关,之后你进行并行测试全部失败也证明了这一点。
作者
Author:
lqyang    时间: 2025-5-14 19:31
hahajisuanxuexi 发表于 2025-5-14 19:17
我是用wsl2的ubuntu24来装qe的,用的是cmake安装方式(https://gitlab.com/QEF/q-e/-/wikis/Developers/CMa ...

谢谢,我试一下,十分感谢
作者
Author:
hahajisuanxuexi    时间: 2025-5-14 19:37
本帖最后由 hahajisuanxuexi 于 2025-5-14 19:44 编辑
lqyang 发表于 2025-5-14 19:31
谢谢,我试一下,十分感谢

你可以安装intel oneapi的 base toolkit和hpc toolkit,里面带了intel编译器和mkl,只要是常用的intel cpu笔记本基本点几下鼠标就能安装成功。我用的cmake命令是“cmake -DCMAKE_C_COMPILER=mpiicx -DCMAKE_Fortran_COMPILER=mpiifx -DBUILD_SHARED_LIBS=ON -DQE_ENABLE_OPENMP=ON -DQE_ENABLE_SCALAPACK=ON ..”。


你用的configure安装方法如果安装顺利完成的话,不知道mpirun运行失败和你是否正确加载了openmpi环境有关。

另外如果要配置环境的话,你可以试试用Module file这个软件(https://blog.csdn.net/m0_37201243/article/details/129632603),intel oneapi安装完成后可以在根目录找到自动生成module file文件的脚本,用起来很方便。

作者
Author:
lqyang    时间: 2025-5-14 20:57
hahajisuanxuexi 发表于 2025-5-14 19:37
你可以安装intel oneapi的 base toolkit和hpc toolkit,里面带了intel编译器和mkl,只要是常用的intel cp ...

万分感谢
作者
Author:
qczcb2    时间: 2025-5-15 08:56
大概是从2022年还是2023年起,oneapi的编译器改名了。icc变为icx,ifort变为ifx等等,但qe里用的还是旧的,需要自己手动修改makefile。嫌麻烦可以改回GNU编译
作者
Author:
lqyang    时间: 2025-5-15 10:22
hahajisuanxuexi 发表于 2025-5-14 19:37
你可以安装intel oneapi的 base toolkit和hpc toolkit,里面带了intel编译器和mkl,只要是常用的intel cp ...

老师上午好,我安装了intel oneapi的 base toolkit和hpc toolkit,但是不知道安装到哪里了;然后“纯MPI并行方式运行。进入diamond目录后,运行以下命令,使用4个MPI进程计算,每个MPI进程下属只有一个线程。
export OMP_NUM_THREADS=1
mpirun -n 4 pw.x < pwscf.in |tee pwscf.out”
仍然显示失败,还是类似的报错;
(, 下载次数 Times of downloads: 14)
然后我确实在intel/oneapi下面找到了modulefiles-setup.sh,执行之后也没效果;是我哪里遗漏了嘛

作者
Author:
lqyang    时间: 2025-5-15 10:24
qczcb2 发表于 2025-5-15 08:56
大概是从2022年还是2023年起,oneapi的编译器改名了。icc变为icx,ifort变为ifx等等,但qe里用的还是旧的, ...

老师上午好,qe-7.0下面找到了附件中的makefile,但是没有icc等您提到的字样,是我找错文件了嘛
(, 下载次数 Times of downloads: 1)





作者
Author:
qczcb2    时间: 2025-5-15 11:32
记错了,是make.inc文件,里面包含如下内容:
# CUDA C Flags
CUDA_CFLAGS=

# C preprocessor and preprocessing flags - for explicit preprocessing,
# if needed (see the compilation rules above)
# preprocessing flags must include DFLAGS and IFLAGS

CPP            = cpp
CPPFLAGS       = -P -traditional -Uvector $(DFLAGS) $(IFLAGS)

# compiler flags: C, F90
# C flags must include DFLAGS and IFLAGS
# F90 flags must include MODFLAGS, IFLAGS, and FDFLAGS with appropriate syntax

CFLAGS         = -O3 $(DFLAGS) $(IFLAGS) $(CUDA_CFLAGS)
F90FLAGS       = $(FFLAGS) -cpp $(FDFLAGS) $(CUDA_F90FLAGS) $(IFLAGS) $(MODFLAGS)

# compiler flags with and without optimization for fortran-77
# the latter is NEEDED to properly compile dlamch.f, used by lapack
FFLAGS         = -O3 -g -fallow-argument-mismatch
FFLAGS_NOOPT   = -O0 -g

# compiler flag needed by some compilers when the main program is not fortran
# Currently used for Yambo

FFLAGS_NOMAIN   =

# Linker, linker-specific flags (if any)
# Typically LD coincides with F90 or MPIF90, LD_LIBS is empty
# for libxc, set LD_LIBS=-L/path/to/libxc/lib/ -lxcf03 -lxc
# If libxc release is 5.0.0 replace -lxcf03 with -lxcf90

LD             = mpif90
LDFLAGS        = -g
LD_LIBS        =   等等,需要将cpp等字段替换为实际的编译器如icpx
作者
Author:
lqyang    时间: 2025-5-15 12:03
本帖最后由 lqyang 于 2025-5-15 12:05 编辑
qczcb2 发表于 2025-5-15 11:32
记错了,是make.inc文件,里面包含如下内容:
# CUDA C Flags
CUDA_CFLAGS=

谢谢老师!;那实际的编译器从哪里能看到呢,这是我的make.inc文件
(, 下载次数 Times of downloads: 0)





作者
Author:
hahajisuanxuexi    时间: 2025-5-15 15:34
lqyang 发表于 2025-5-15 10:22
老师上午好,我安装了intel oneapi的 base toolkit和hpc toolkit,但是不知道安装到哪里了;然后“纯MPI ...

以下操作在root账户下执行,另外此安装方法不需要该帖提供帮助的网友qczcb2所说的修改makefile文件。
按照该网页https://blog.csdn.net/m0_37201243/article/details/129632603的教程安装Module管理器,然后根据说明输入命令:
  1. cd /usr/share/modules/init
  2. ls
  3. source /usr/share/modules/init/bash
复制代码


随后你可以通过
  1. module avail
复制代码

命令查看可用的module,通过
  1. module load xxx
复制代码

加载module(xxx是module名称)。
然后到网站https://www.intel.com/content/ww ... ;oneapi-lin=offline下载oneapi base toolkit离线安装包,到网站https://www.intel.com/content/ww ... toolkit-lin=offline下载oneapi hpc toolkit离线安装包,安装完成后进入文件夹/opt/intel/oneapi/输入命令
  1. bash modulefiles-setup.sh
复制代码

即可自动生成module file文件,根据提示到/root/modulefiles文件夹中将生成的intel oneapi相关module文件复制到文件夹/usr/share/modules/modulefiles中便能通过"module avail"和"module load xxx"查找和加载环境了。

随后使用apt安装cmake、git等安装qe所需要的软件,然后输入命令
  1. module load compiler-intel-llvm/2025.0.4 compiler/2025.0.4 mkl/2025.1 mpi/2021.14
复制代码

加载intel oneapi环境(请根据自己电脑上安装的intel oneapi版本修改上述命令)。

下载最新版的qe安装包后解压,进入根目录/qe-7.4.1输入命令
  1. mkdir build
复制代码

建立编译文件夹,进入build文件夹后输入命令
  1. cmake -DCMAKE_INSTALL_PREFIX=你所指定的安装QE可执行程序的文件夹地址 -DCMAKE_C_COMPILER=mpiicx -DCMAKE_Fortran_COMPILER=mpiifx -DBUILD_SHARED_LIBS=ON -DQE_ENABLE_OPENMP=ON -DQE_ENABLE_SCALAPACK=ON ..
复制代码

注意这里的"你所指定的安装QE可执行程序的文件夹地址"可以和你解压QE源码的根目录不同,然后QE会输出类似于如下的信息"-- The Fortran compiler identification is IntelLLVM 2025.0.4
-- The C compiler identification is IntelLLVM 2025.0.4
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2025.0/bin/ifx - skipped
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/intel/oneapi/compiler/2025.0/bin/icx - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified
-- Enable sanitizer QE_ENABLE_SANITIZER=none
-- C preprocessor used by qe_preprocess_source in qeHelpers.cmake: /usr/bin/cpp
-- Performing Test Fortran_ISYSTEM_SUPPORTED
-- Performing Test Fortran_ISYSTEM_SUPPORTED - Success
-- Found MPI_Fortran: /opt/intel/oneapi/mpi/2021.14/lib/libmpifort.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1") found components: Fortran
-- Selected the Fortran 'mpi' module. QE_ENABLE_MPI_MODULE=ON
-- MPI settings used by CTest
     MPIEXEC_EXECUTABLE : /opt/intel/oneapi/mpi/2021.14/bin/mpiexec
     MPIEXEC_NUMPROC_FLAG : -n
     MPIEXEC_PREFLAGS :
   Tests run as : /opt/intel/oneapi/mpi/2021.14/bin/mpiexec -n <NUM_PROCS>  <EXECUTABLE>
-- Found Git: /usr/bin/git (found suitable version "2.43.0", minimum required is "2.13")
-- Source files are not cloned from a git repository.
-- Trying to find LAPACK from Intel MKL
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for Fortran sgemm
-- Looking for Fortran sgemm - found
-- Found BLAS: /opt/intel/oneapi/mkl/2025.1/lib/libmkl_intel_lp64.so;/opt/intel/oneapi/mkl/2025.1/lib/libmkl_sequential.so;/opt/intel/oneapi/mkl/2025.1/lib/libmkl_core.so;-lm;-ldl
-- Looking for Fortran cheev
-- Looking for Fortran cheev - found
-- Found LAPACK: /opt/intel/oneapi/mkl/2025.1/lib/libmkl_intel_lp64.so;/opt/intel/oneapi/mkl/2025.1/lib/libmkl_sequential.so;/opt/intel/oneapi/mkl/2025.1/lib/libmkl_core.so;-lm;-ldl;-lm;-ldl
-- Looking for Fortran zhpev
-- Looking for Fortran zhpev - found
-- Installing Wannier90 via submodule
-- Installing MBD via submodule
-- Installing DeviceXlib via submodule
-- Could NOT find VendorFFTW (missing: VendorFFTW_INCLUDE_DIRS)
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
-- Found FFTW3: /usr/lib/x86_64-linux-gnu/libfftw3.so
-- Looking for mallinfo
-- Looking for mallinfo - found
-- Enabling tests in test-suite

Only pw and cp results from ctest are reliable, we are working on making the rest tests work reliably with ctest. To run non-pw/cp tests, make a softlink of the bin directory to the root of QE source tree and run tests in the test-suite directory under that root.

-- generating tests in pw category
-- generating tests in cp category
-- Configuring done (4.9s)
-- Generating done (0.9s)
-- Build files have been written to: /software/download/qe-7.4.1/build"
然后输入命令
  1. make -j8 && make install
复制代码

等待编译以及安装完成。随后进入文件夹/usr/share/modules/modulefiles制作QE的module文件,输入命令
  1. vim qe_intel
复制代码

进入module文件编辑页面,输入"a"进入编辑模式,粘贴下述内容:
  1. #%Module1.0################################################################
  2. setenv qe 你所指定的安装QE可执行程序的文件夹地址
  3. prepend-path PATH 你所指定的安装QE可执行程序的文件夹地址/bin
  4. prepend-path LD_LIBRARY_PATH 你所指定的安装QE可执行程序的文件夹地址/lib64
  5. prepend-path LIBRARY_PATH 你所指定的安装QE可执行程序的文件夹地址/lib64
  6. prepend-path CPATH 你所指定的安装QE可执行程序的文件夹地址/include
  7. prepend-path PKG_CONFIG_PATH 你所指定的安装QE可执行程序的文件夹地址/lib64/pkgconfig
复制代码


然后输入ESC退出编辑模式,再输入":wq"退出编辑页面。

然后你可以通过输入命令
  1. module load compiler-intel-llvm/2025.0.4 mkl/2025.1 mpi/2021.14 qe_intel
复制代码

加载QE所需依赖库和QE程序,进入编译QE的build文件夹,输入命令
  1. ctest -j8 --output-on-failure -L unit
复制代码

测试是否安装成功。



作者
Author:
lqyang    时间: 2025-6-4 11:28
hahajisuanxuexi 发表于 2025-5-15 15:34
以下操作在root账户下执行,另外此安装方法不需要该帖提供帮助的网友qczcb2所说的修改makefile文件。
按 ...

老师抱歉这么久才进行测试,您看这是成功了嘛,谢谢 (, 下载次数 Times of downloads: 14)

作者
Author:
hahajisuanxuexi    时间: 2025-6-4 15:38
lqyang 发表于 2025-6-4 11:28
老师抱歉这么久才进行测试,您看这是成功了嘛,谢谢

这应该表明你的cmake安装成功了,你还可以到之前说的test-suite文件夹输入类似下述命令判断并行是否能正常运行
  1. make run-tests-pw-parallel
复制代码

另外注意用“module load”命令加载相关模块。
作者
Author:
lqyang    时间: 2025-6-4 17:24
本帖最后由 lqyang 于 2025-6-4 17:29 编辑
hahajisuanxuexi 发表于 2025-6-4 15:38
这应该表明你的cmake安装成功了,你还可以到之前说的test-suite文件夹输入类似下述命令判断并行是否能正 ...

(, 下载次数 Times of downloads: 13)
老师您好,我进入test-suite之后,make run-tests-pw-parallel反应了一会儿,然后全部报错

作者
Author:
hahajisuanxuexi    时间: 2025-6-4 17:43
本帖最后由 hahajisuanxuexi 于 2025-6-4 17:46 编辑
lqyang 发表于 2025-6-4 17:24
老师您好,我进入test-suite之后,make run-tests-pw-parallel反应了一会儿,然后全部报错

你看看这两个网页里说到的问题和你遇到的问题是否一样?“https://gitlab.com/QEF/q-e/-/issues/444”、“https://gitlab.com/QEF/q-e/-/wik ... eudopotential-files”,
另外你确认下有没有加载相应的模块?
之前你的贴子说你在build文件夹里运行的cmake安装测试全部通过应该表明你的安装是没有问题的。你可以尝试运行下自编的QE代码,看看能否正常并行。
作者
Author:
lqyang    时间: 2025-6-4 18:39
本帖最后由 lqyang 于 2025-6-4 19:12 编辑
hahajisuanxuexi 发表于 2025-6-4 17:43
你看看这两个网页里说到的问题和你遇到的问题是否一样?“https://gitlab.com/QEF/q-e/-/issues/444”、 ...

老师晚上好,您说的加载相应模块,我不是很明白,是图片里这种吗 (, 下载次数 Times of downloads: 14)

我尝试加载相应模块,,并且按照您给我的那个链接更改了赝势的相关设置, (, 下载次数 Times of downloads: 14) (, 下载次数 Times of downloads: 12) (, 下载次数 Times of downloads: 11)
然后并且删掉了之前存在的赝势(pseudo文件夹下的文件,但是删不干净),结果仍然是之前相同的报错

作者
Author:
hahajisuanxuexi    时间: 2025-6-4 20:48
本帖最后由 hahajisuanxuexi 于 2025-6-4 20:50 编辑
lqyang 发表于 2025-6-4 18:39
老师晚上好,您说的加载相应模块,我不是很明白,是图片里这种吗

我尝试加载相应模块,,并且按照您给 ...

根据你上传的图片“已加载module”,所需要的module应该是全部加载成功了。
你可以先试试能不能运行自己编写的qe代码,我之前自己安装QE的时候好像最开始测试test suite文件夹的内容也出现过报错,只成功进行了build文件夹的ctest测试,之后就直接跑自己的代码了。
如果你能成功运行自己写的代码,那么我觉得可以暂时忽略test suite中的测试内容。
如果你想搞清楚究竟是什么原因导致无法正常运行test suite当中的测试,你可以尝试看看test suite中的测试中输出文件写了具体什么报错信息,我在网上搜你给出的报错信息,发现问题原因多种多样,目前我不好说具体是什么原因。
作者
Author:
lqyang    时间: 2025-6-4 22:04
本帖最后由 lqyang 于 2025-6-4 22:06 编辑
hahajisuanxuexi 发表于 2025-6-4 20:48
根据你上传的图片“已加载module”,所需要的module应该是全部加载成功了。
你可以先试试能不能运行自己 ...

老师,有没有可能是"你所指定的安装QE可执行程序的文件夹地址"我弄出问题了;我没有把"指定的安装QE可执行程序的文件夹地址"设置为qe-7.41,而是在根目录下(也就是与qe-7.4.1同一级位置处)重新新建了一个文件夹,命名为QuantumEspresso-7.4.1,然后进行编译,最终该文件夹里面有bin、lib、include等一共四个文件夹;同时我没有在root账户下进行整个编译过程,除了几个操作(比如生成qe_intel文件、复制module files到指定位置)中用到了sudo。
作者
Author:
hahajisuanxuexi    时间: 2025-6-4 22:25
lqyang 发表于 2025-6-4 22:04
老师,有没有可能是"你所指定的安装QE可执行程序的文件夹地址"我弄出问题了;我没有把"指定的安装QE可执 ...

"你所指定的安装QE可执行程序的文件夹地址"这个我感觉影响不大,没有在root账户下编译或许有影响,我不太确定,我建议你重新编译实验一下。
作者
Author:
lqyang    时间: 2025-6-5 12:12
hahajisuanxuexi 发表于 2025-6-4 22:25
"你所指定的安装QE可执行程序的文件夹地址"这个我感觉影响不大,没有在root账户下编译或许有影响,我不太 ...

老师中午好,十分感谢,在root下编译,test-suite测试通过 (, 下载次数 Times of downloads: 13)





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