计算化学公社

 找回密码 Forget password
 注册 Register

测试QE时遇到的问题

查看数: 1022 | 评论数: 19 | 收藏 Add to favorites 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-5-14 15:50

正文摘要:

大家好,我在Windows11上用wsl安装了Ubuntu 22,然后按照社长的http://bbs.keinsci.com/thread-18600-1-1.html这篇博文进行QE的安装,出现以下几点问题。 一、编译QE阶段 目标:export LD_LIBRARY_PATH=$LD_LIBRAR ...

回复 Reply

hahajisuanxuexi 发表于 Post on 2025-6-4 22:25:33
lqyang 发表于 2025-6-4 22:04
老师,有没有可能是"你所指定的安装QE可执行程序的文件夹地址"我弄出问题了;我没有把"指定的安装QE可执 ...

"你所指定的安装QE可执行程序的文件夹地址"这个我感觉影响不大,没有在root账户下编译或许有影响,我不太确定,我建议你重新编译实验一下。

评分 Rate

参与人数
Participants 1
eV +4 收起 理由
Reason
lqyang + 4 谢谢

查看全部评分 View all ratings

lqyang 发表于 Post on 2025-6-4 22:04:01
本帖最后由 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。
hahajisuanxuexi 发表于 Post on 2025-6-4 20:48:12
本帖最后由 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中的测试中输出文件写了具体什么报错信息,我在网上搜你给出的报错信息,发现问题原因多种多样,目前我不好说具体是什么原因。
hahajisuanxuexi 发表于 Post on 2025-6-4 17:43:18
本帖最后由 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代码,看看能否正常并行。
hahajisuanxuexi 发表于 Post on 2025-6-4 15:38:33
lqyang 发表于 2025-6-4 11:28
老师抱歉这么久才进行测试,您看这是成功了嘛,谢谢

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

另外注意用“module load”命令加载相关模块。
hahajisuanxuexi 发表于 Post on 2025-5-15 15:34:40
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
复制代码

测试是否安装成功。


评分 Rate

参与人数
Participants 1
eV +4 收起 理由
Reason
lqyang + 4 谢谢

查看全部评分 View all ratings

lqyang 发表于 Post on 2025-5-15 12:03:58
本帖最后由 lqyang 于 2025-5-15 12:05 编辑
qczcb2 发表于 2025-5-15 11:32
记错了,是make.inc文件,里面包含如下内容:
# CUDA C Flags
CUDA_CFLAGS=

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




qczcb2 发表于 Post on 2025-5-15 11:32:48
记错了,是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
lqyang 发表于 Post on 2025-5-15 10:24:31
qczcb2 发表于 2025-5-15 08:56
大概是从2022年还是2023年起,oneapi的编译器改名了。icc变为icx,ifort变为ifx等等,但qe里用的还是旧的, ...

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




手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-15 09:25 , Processed in 0.345886 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list