Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QuantumESPRESSO v7.4 #181

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,13 @@ uenvs:
todi: [gh200]
daint: [gh200]
eiger: [zen2]
"v7.4":
recipes:
gh200: v7.4/gh200
zen2: v7.4/mc
deploy:
santis: [gh200]
daint: [gh200]
sirius:
"v7.5":
recipes:
Expand Down
3 changes: 2 additions & 1 deletion recipes/quantumespresso/v7.3.1/gh200/environments.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ nvhpc-env:
gpu: cuda
unify: true
specs:
- [email protected] %nvhpc +libxc +cuda +nvtx +scalapack +openmp +mpigpu
- [email protected] %nvhpc +libxc +cuda +nvtx +scalapack +openmp +mpigpu hdf5=parallel
- netlib-scalapack
- fftw%nvhpc
- nvpl-blas threads=openmp
- nvpl-lapack threads=openmp
- libxc%nvhpc~cuda
- cmake
- hdf5 %nvhpc
- [email protected] ~blas ~lapack ~mpi
packages:
- git
Expand Down
9 changes: 9 additions & 0 deletions recipes/quantumespresso/v7.4/gh200/compilers.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
bootstrap:
spec: gcc@12
gcc:
specs:
- gcc@12
llvm:
requires: gcc@12
specs:
- [email protected]
6 changes: 6 additions & 0 deletions recipes/quantumespresso/v7.4/gh200/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: quantumespresso
store: /user-environment
description: QuantumESPRESSO 7.4 +cuda
spack:
repo: https://github.com/spack/spack.git
commit: releases/v0.23
32 changes: 32 additions & 0 deletions recipes/quantumespresso/v7.4/gh200/environments.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
nvhpc-env:
compiler:
- toolchain: gcc
spec: gcc@12
- toolchain: llvm
spec: nvhpc
mpi:
spec: [email protected]%nvhpc
gpu: cuda
unify: true
specs:
- [email protected] %nvhpc +libxc +cuda +nvtx +scalapack +openmp +mpigpu hdf5=parallel
- netlib-scalapack
- fftw%nvhpc
- nvpl-blas threads=openmp
- nvpl-lapack threads=openmp
- libxc%nvhpc~cuda
- cmake
- hdf5 %nvhpc
- [email protected] ~blas ~lapack ~mpi
packages:
- git
variants:
- +mpi
- +cuda
- cuda_arch=90
views:
default:
link: roots
develop:
exclude: ['quantum-espresso', 'patchelf', 'git']
link: roots
24 changes: 24 additions & 0 deletions recipes/quantumespresso/v7.4/gh200/extra/reframe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
develop:
features:
- cuda
- mpi
- qe-dev
cc: mpicc
cxx: mpic++
ftn: mpifort
views:
- modules
activation:
- module load cmake fftw nvhpc nvpl-lapack nvpl-blas cray-mpich netlib-scalapack libxc
modules:
features:
- cuda
- mpi
- qe
cc: mpicc
cxx: mpic++
ftn: mpifort
views:
- modules
activation:
- module load quantum-espresso
23 changes: 23 additions & 0 deletions recipes/quantumespresso/v7.4/gh200/modules.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
modules:
# Paths to check when creating modules for all module sets
prefix_inspections:
bin:
- PATH
lib:
- LD_LIBRARY_PATH
lib64:
- LD_LIBRARY_PATH

default:
arch_folder: false
# Where to install modules
roots:
tcl: /user-environment/modules
tcl:
all:
autoload: none
hash_length: 0
exclude_implicits: true
exclude: ['%[email protected]', 'gcc %[email protected]']
projections:
all: '{name}/{version}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
diff --git a/install/configure b/install/configure_aocc
index 66337d1..d2c04af 100755
--- a/install/configure
+++ b/install/configure_aocc
@@ -3199,6 +3199,7 @@
ifort_version=`$mpif90 -V 2>&1 | grep "Intel(R)"`
pgf_version=`$mpif90 -V 2>&1 | grep "^pgf"`
nvfortran_version=`$mpif90 -V 2>&1 | grep "^nvfortran"`
+ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"`
gfortran_version=`$mpif90 -v 2>&1 | grep "gcc version"`
nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
@@ -3215,6 +3216,12 @@ case "$arch" in
version=`echo $nvfortran_version | cut -d ' ' -f2`
echo "${ECHO_T}nvfortran $version"
f90_in_mpif90="nvfortran"
+ elif test "$aoccflang_version" != ""
+ then
+ version=`echo $aoccflang_version | cut -d" " -f 5`
+ echo "${ECHO_T}mpif90 $version"
+ f90_in_mpif90="mpif90"
+ try_foxflags="-D__PGI"
elif test "$pgf_version" != ""
then
version=`echo $pgf_version | cut -d ' ' -f2`
@@ -3397,6 +3404,9 @@ ppc64-bg*:*xlf90_r )
ppc64-bg*:*xlf90 )
try_cc="bgxlc"
;;
+*:mpif90 )
+ try_cc="mpicc $try_cc"
+ ;;
ppc64:*xlf* | ppc64le:*xlf* )
try_cc="xlc_r $try_cc"
;;
@@ -3779,6 +3789,10 @@ necsx:* )
ppc64le:* )
try_cflags="-O3"
;;
+x86_64:* )
+ try_cflags=" -Mstack_arrays"
+ try_dflags="-D__OPENMP"
+ ;;
ppc64-bg:* )
try_cflags="-O3 -q32"
;;
@@ -3915,6 +3929,16 @@ crayxt*:cray* )
try_dflags="$try_dflags -D__CRAY"
have_cpp=0
;;
+*:*mpif90 )
+ try_fflags="-Mstack_arrays"
+ try_fflags_openmp="-fopenmp"
+ try_f90flags=" \$(FFLAGS) -cpp -Mpreprocess -Mstack_arrays"
+ try_foxflags="-D__PGI"
+ try_fflags_noopt="-O0"
+ try_ldflags=""
+ try_ldflags_openmp="-fopenmp"
+ try_ldflags_static="-static"
+ ;;
crayxt*:pgf* )
# see comment above for pgf*
try_fflags_nomain="-Mnomain"
@@ -7815,7 +7839,7 @@ $as_echo "$as_me: WARNING: *** HDF5 version must be 1.8.16 or later" >&2;};
if test $with_hdf5_libs -eq 1; then
hdf5_libs=$with_hdf5_libline
else
- hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}'`
+ hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}' | xargs`
fi
elif command -v h5pfc >/dev/null; then
if test $with_hdf5_libs -eq 1; then
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
diff -ruN LAXlib-orig/dspev_drv.f90 LAXlib/dspev_drv.f90
--- a/LAXlib/dspev_drv.f90 2017-06-12 15:00:46.157372185 +0200
+++ b/LAXlib/dspev_drv.f90 2017-06-12 15:01:19.937371580 +0200
@@ -708,11 +708,11 @@

#if defined(__ELPA_2016)
! -> ELPA 2016.11.001_pre
- ierr = elpa_get_communicators(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
- success = solve_evp_real_1stage(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols, ortho_comm)
+ !ierr = elpa_get_communicators(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
+ !success = solve_evp_real_1stage(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols, ortho_comm)
! -> ELPA 2016.05.003
- !ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
- !success = solve_evp_real_1stage(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols)
+ ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
+ success = solve_evp_real_1stage(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols)
#elif defined(__ELPA_2015)
ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
ierr = solve_evp_real(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols)
diff -ruN LAXlib-orig/zhpev_drv.f90 LAXlib/zhpev_drv.f90
--- a/LAXlib/zhpev_drv.f90 2017-06-12 15:00:46.157372185 +0200
+++ b/LAXlib/zhpev_drv.f90 2017-06-12 15:02:09.309370696 +0200
@@ -1519,13 +1519,13 @@

#if defined(__ELPA_2016)
! -> ELPA 2016.11.001_pre
- ierr = elpa_get_communicators(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
- success = solve_evp_complex_1stage_double(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
- mpi_comm_rows, mpi_comm_cols, ortho_comm)
+ !ierr = elpa_get_communicators(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
+ !success = solve_evp_complex_1stage_double(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
+ ! mpi_comm_rows, mpi_comm_cols, ortho_comm)
! -> ELPA 2016.05.003
- !ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
- !success = solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
- ! mpi_comm_rows, mpi_comm_cols)
+ ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
+ success = solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
+ mpi_comm_rows, mpi_comm_cols)
#elif defined(__ELPA_2015)
ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
ierr = solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- spack-src/install/extlibs_makefile.org 2021-01-22 10:11:00.527343202 +0900
+++ spack-src/install/extlibs_makefile 2021-01-22 10:15:24.319956918 +0900
@@ -89,6 +89,7 @@
mkdir ../FoX; \
(gzip -dc ../archive/fox.tgz | (cd ../FoX; tar -xvf -)); \
cd ../FoX/fox/; export FC=$(F90); export FCFLAGS="$(FOX_FLAGS)"; \
+ sed -i 's/"-out " "-o "/"-o " "-out "/' configure; \
./configure --prefix=$(TOPDIR)/FoX ;\
$(MAKE) install; cd ../; rm -fr fox;fi
# ELPA
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- spack-src/PHonon/Gamma/dgradcorr.f90.org 2021-01-27 16:41:04.692204340 +0900
+++ spack-src/PHonon/Gamma/dgradcorr.f90 2021-01-27 16:44:03.877839298 +0900
@@ -22,7 +22,7 @@

REAL(DP), INTENT(IN) :: rho (dfft%nnr, nspin), grho (3, dfft%nnr, nspin), &
g (3, dfft%ngm)
- REAL(DP), INTENT(OUT):: drho (dfft%nnr,nspin),&
+ REAL(DP), INTENT(IN):: drho (dfft%nnr,nspin),&
dvxc_rr(dfft%nnr, nspin, nspin), dvxc_sr (dfft%nnr, nspin, nspin), &
dvxc_ss (dfft%nnr,nspin, nspin), dvxc_s (dfft%nnr, nspin, nspin)
REAL(DP), INTENT(INOUT) :: dvxc (dfft%nnr, nspin)
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--- spack-src/install/configure.org 2021-01-22 12:21:20.196915072 +0900
+++ spack-src/install/configure 2021-01-22 12:24:47.562530103 +0900
@@ -3127,6 +3127,7 @@
pgf_version=`$mpif90 -V 2>&1 | grep "^pgf"`
gfortran_version=`$mpif90 -v 2>&1 | grep "gcc version"`
nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
+ frt_version=`$mpif90 -v 2>&1 | grep "Fujitsu Fortran Compiler"`
xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
#
if test "$ifort_version" != ""
@@ -3160,6 +3161,12 @@
echo "${ECHO_T}xlf (version unknonw)"
f90_in_mpif90="xlf"
try_dflags="-D__XLF"
+ elif test "$frt_version" != ""
+ then
+ version=`echo $frt_version | cut -d" " -f 5`
+ echo "${ECHO_T}frt $version"
+ f90_in_mpif90="frt"
+ try_foxflags="-D__FUJITSU"
else
echo "${ECHO_T}unknown, assuming gfortran"
f90_in_mpif90="gfortran"
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--- spack-src/install/configure.org 2021-01-15 09:27:53.000000000 +0900
+++ spack-src/install/configure 2021-01-15 09:26:53.000000000 +0900
@@ -3200,6 +3200,7 @@
nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
armflang_version=`$mpif90 -v 2>&1 | grep "Arm C/C++/Fortran Compiler version"`
+ frt_version=`$mpif90 -v 2>&1 | grep "Fujitsu Fortran Compiler"`
#
if test "$ifort_version" != ""
then
@@ -3237,6 +3238,12 @@
f90_minor_version=`echo $version | cut -d. -f2`
f90_in_mpif90="armflang"
try_foxflags="-D__PGI"
+ elif test "$frt_version" != ""
+ then
+ version=`echo $frt_version | cut -d" " -f 5`
+ echo "${ECHO_T}frt $version"
+ f90_in_mpif90="frt"
+ try_foxflags="-D__FUJITSU"
else
echo "${ECHO_T}unknown, assuming gfortran"
f90_in_mpif90="gfortran"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--- spack-src/external/submodule_commit_hash_records.org 2023-11-15 18:38:47.485317449 -0300
+++ spack-src/external/submodule_commit_hash_records 2023-11-15 18:39:02.661861757 -0300
@@ -5,4 +5,4 @@
82005cbb65bdf5d32ca021848eec8f19da956a77 mbd
f72ab25fa4ea755c1b4b230ae8074b47d5509c70 pw2qmcpack
1d6b187374a2d50b509e5e79e2cab01a79ff7ce1 wannier90
-f5823521ad8fdd8b8e9e29197eedb354f9b9146d qe-gipaw
+eccee44d3caf1c930fb72ad9c741fbb743eabf45 qe-gipaw
Loading