Skip to content

{phys}[NVHPC/25.1] FFTW v3.3.10, HDF5 v1.14.5, Wannier90 v3.1.0, VASP v6.5.0#23188

Merged
boegel merged 8 commits intoeasybuilders:developfrom
lexming:vasp-nvhpc
Dec 15, 2025
Merged

{phys}[NVHPC/25.1] FFTW v3.3.10, HDF5 v1.14.5, Wannier90 v3.1.0, VASP v6.5.0#23188
boegel merged 8 commits intoeasybuilders:developfrom
lexming:vasp-nvhpc

Conversation

@lexming
Copy link
Contributor

@lexming lexming commented Jun 23, 2025

Depends on:

As shown by the test reports below, this build of VASP with NVHPC passes all tests

==================================================================
SUCCESS: ALL SELECTED TESTS PASSED
==================================================================

While the same version built with nvofbf has many tests failures

==================================================================
SUMMARY:
==================================================================
The following tests failed, please check the output file manually:
bulk_GaAs_ACFDT bulk_GaAs_ACFDT_RPR bulk_GaAs_G0W0_sym bulk_GaAs_G0W0_sym_RPR bulk_GaAs_scGW0_ALGO=D_sym bulk_GaAs_scGW0_ALGO=D_sym_RPR bulk_GaAs_scGW0_sym bulk_GaAs_scGW0_sym_RPR bulk_GaAs_scGW_ALGO=D_sym bulk_GaAs_scGW_ALGO=D_sym_RPR bulk_GaAs_scGW_sym bulk_GaAs_scGW_sym_RPR bulk_InP_SOC_DFT_ISYM=3 bulk_InP_SOC_DFT_ISYM=3_RPR bulk_InP_SOC_G0W0_sym bulk_InP_SOC_G0W0_sym_RPR bulk_InP_SOC_PBE0_sym bulk_InP_SOC_PBE0_sym_RPR bulk_SiO2_LPEAD bulk_SiO2_LPEAD_RPR GaAs_LEPSILON_LPEAD GaAs_LEPSILON_LPEAD_RPR md_8_Cu_IALGO=48 md_8_Cu_IALGO=48_RPR SiC8_GW0R

@lexming lexming added the update label Jun 23, 2025
@lexming lexming changed the title {phys}[NVHPC/25.1] VASP v6.5.1 {phys}[NVHPC/25.1] FFTW v3.3.10, HDF5 v1.14.5, Wannier90 v3.1.0, VASP v6.5.1 Jun 23, 2025
@github-actions
Copy link

github-actions bot commented Jun 23, 2025

Updated software FFTW-3.3.10-NVHPC-25.1.eb

Diff against FFTW-3.3.10-llvm-compilers-20.1.8.eb

easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb

diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
index 8b672b9500..361c840b3b 100644
--- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb
+++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
@@ -5,15 +5,14 @@ homepage = 'https://www.fftw.org'
 description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
 in one or more dimensions, of arbitrary input size, and of both real and complex data."""
 
-toolchain = {'name': 'llvm-compilers', 'version': '20.1.8'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'pic': True}
 
 source_urls = [homepage]
 sources = [SOURCELOWER_TAR_GZ]
 checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
 
-# not supported for LLVM compilers
-# build fails with: configure: error: gcc 4.6 or later required for quad precision support
+# Does not work with nvc
 with_quad_prec = False
 
 runtest = 'check'
Diff against FFTW-3.3.10-GCC-14.3.0.eb

easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-14.3.0.eb

diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-14.3.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
index 663ed7191b..361c840b3b 100644
--- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-14.3.0.eb
+++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
@@ -5,13 +5,16 @@ homepage = 'https://www.fftw.org'
 description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
 in one or more dimensions, of arbitrary input size, and of both real and complex data."""
 
-toolchain = {'name': 'GCC', 'version': '14.3.0'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'pic': True}
 
 source_urls = [homepage]
 sources = [SOURCELOWER_TAR_GZ]
 checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
 
+# Does not work with nvc
+with_quad_prec = False
+
 runtest = 'check'
 
 moduleclass = 'numlib'
Diff against FFTW-3.3.10-intel-compilers-2023.1.0.eb

easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-intel-compilers-2023.1.0.eb

diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
index 79fb090b48..361c840b3b 100644
--- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-intel-compilers-2023.1.0.eb
+++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-NVHPC-25.1.eb
@@ -5,22 +5,16 @@ homepage = 'https://www.fftw.org'
 description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
 in one or more dimensions, of arbitrary input size, and of both real and complex data."""
 
-toolchain = {'name': 'intel-compilers', 'version': '2023.1.0'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'pic': True}
 
 source_urls = [homepage]
 sources = [SOURCELOWER_TAR_GZ]
 checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
 
-# no quad precision, requires GCC v4.6 or higher
-# see also
-# https://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html
+# Does not work with nvc
 with_quad_prec = False
 
-# compilation fails on AMD systems when configuring with --enable-avx-128-fma,
-# because Intel compilers do not support FMA4 instructions
-use_fma4 = False
-
 runtest = 'check'
 
 moduleclass = 'numlib'

Updated software HDF5-1.14.5-NVHPC-25.1.eb

Diff against HDF5-1.14.6-lompi-2025b.eb

easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-lompi-2025b.eb

diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-lompi-2025b.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
index 6f7ca38a76..6059e81cd8 100644
--- a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-lompi-2025b.eb
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
@@ -1,54 +1,27 @@
-easyblock = 'CMakeMake'
-
 name = 'HDF5'
 # Note: Odd minor releases are only RCs and should not be used.
-version = '1.14.6'
+version = '1.14.5'
 
 homepage = 'https://portal.hdfgroup.org/display/support'
 description = """HDF5 is a data model, library, and file format for storing and managing data.
  It supports an unlimited variety of datatypes, and is designed for flexible
  and efficient I/O and for high volume and complex data."""
 
-toolchain = {'name': 'lompi', 'version': '2025b'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'pic': True, 'usempi': True}
 
 source_urls = ['https://github.com/HDFGroup/hdf5/archive']
 sources = ['hdf5_%(version)s.tar.gz']
-checksums = ['09ee1c671a87401a5201c06106650f62badeea5a3b3941e9b1e2e1e08317357f']
-
-builddependencies = [('CMake', '4.0.3')]
+checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350']
 
 dependencies = [
-    ('libaec', '1.1.4'),
-    ('Perl', '5.40.2'),
     ('zlib', '1.3.1'),
+    ('Szip', '2.1.1'),
 ]
 
-preconfigopts = 'export LDFLAGS="$LDFLAGS -pthread" && '
-preconfigopts += 'export RUNPARALLEL="mpirun -np $${NPROCS:=3}" && '
-configopts = ' '.join([
-    '-DHDF5_BUILD_CPP_LIB=ON',
-    '-DHDF5_BUILD_FORTRAN=ON',
-    '-DHDF5_ENABLE_THREADSAFE=ON',
-    '-DALLOW_UNSUPPORTED=ON',  # fortran+threadsafe requires unsupported
-    '-DHDF5_ENABLE_PARALLEL=ON',
-])
-# h5redeploy is shipped in 1.14.6 but not installed by CMake. This will be removed in a future HDF5 release.
 postinstallcmds = [
-    "cp ../hdf5*/bin/h5redeploy.in %(installdir)s/bin/h5redeploy && chmod +x %(installdir)s/bin/h5redeploy",
+    'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5c++',
+    'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5pcc',
 ]
 
-_extra_binaries = ["h5perf", "h5pcc", "h5pfc", "ph5diff"]
-_h5binaries = ["c++", "copy", "debug", "diff", "dump", "import", "jam", "ls", "mkgrp", "perf_serial", "redeploy",
-               "repack", "repart", "stat", "unjam"]
-_binaries = ["h5%s" % x for x in _h5binaries] + _extra_binaries
-_libs = ["libhdf5%s.%s" % (lib, SHLIB_EXT) for lib in ['', '_cpp', '_fortran', '_hl_cpp', '_hl', '_hl_fortran']]
-
-sanity_check_paths = {
-    'files': [f"bin/{x}" for x in _binaries] + [f"lib/{lib}" for lib in _libs],
-    'dirs': ['include'],
-}
-
-modextravars = {'HDF5_DIR': ''}
-
 moduleclass = 'data'
Diff against HDF5-1.14.6-GCC-14.3.0-serial.eb

easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-GCC-14.3.0-serial.eb

diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-GCC-14.3.0-serial.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
index 9357060d4b..6059e81cd8 100644
--- a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-GCC-14.3.0-serial.eb
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
@@ -1,53 +1,27 @@
-easyblock = 'CMakeMake'
-
 name = 'HDF5'
 # Note: Odd minor releases are only RCs and should not be used.
-version = '1.14.6'
-versionsuffix = '-serial'
+version = '1.14.5'
 
 homepage = 'https://portal.hdfgroup.org/display/support'
 description = """HDF5 is a data model, library, and file format for storing and managing data.
  It supports an unlimited variety of datatypes, and is designed for flexible
  and efficient I/O and for high volume and complex data."""
 
-toolchain = {'name': 'GCC', 'version': '14.3.0'}
-toolchainopts = {'pic': True}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
+toolchainopts = {'pic': True, 'usempi': True}
 
 source_urls = ['https://github.com/HDFGroup/hdf5/archive']
 sources = ['hdf5_%(version)s.tar.gz']
-checksums = ['09ee1c671a87401a5201c06106650f62badeea5a3b3941e9b1e2e1e08317357f']
-
-builddependencies = [('CMake', '4.0.3')]
+checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350']
 
 dependencies = [
-    ('libaec', '1.1.4'),
-    ('Perl', '5.40.2'),
     ('zlib', '1.3.1'),
+    ('Szip', '2.1.1'),
 ]
 
-preconfigopts = 'export LDFLAGS="$LDFLAGS -pthread" && '
-configopts = ' '.join([
-    '-DHDF5_BUILD_CPP_LIB=ON',
-    '-DHDF5_BUILD_FORTRAN=ON',
-    '-DHDF5_ENABLE_THREADSAFE=ON',
-    '-DALLOW_UNSUPPORTED=ON',  # fortran+threadsafe requires unsupported
-])
-# h5redeploy is shipped in 1.14.6 but not installed by CMake. This will be removed in a future HDF5 release.
 postinstallcmds = [
-    "cp ../hdf5*/bin/h5redeploy.in %(installdir)s/bin/h5redeploy && chmod +x %(installdir)s/bin/h5redeploy",
+    'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5c++',
+    'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5pcc',
 ]
 
-_extra_binaries = ["h5cc", "h5fc"]
-_h5binaries = ["c++", "copy", "debug", "diff", "dump", "import", "jam", "ls", "mkgrp", "perf_serial", "redeploy",
-               "repack", "repart", "stat", "unjam"]
-_binaries = ["h5%s" % x for x in _h5binaries] + _extra_binaries
-_libs = ["libhdf5%s.%s" % (lib, SHLIB_EXT) for lib in ['', '_cpp', '_fortran', '_hl_cpp', '_hl', '_hl_fortran']]
-
-sanity_check_paths = {
-    'files': [f"bin/{x}" for x in _binaries] + [f"lib/{lib}" for lib in _libs],
-    'dirs': ['include'],
-}
-
-modextravars = {'HDF5_DIR': ''}
-
 moduleclass = 'data'
Diff against HDF5-1.14.6-iimpi-2025a.eb

easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-iimpi-2025a.eb

diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-iimpi-2025a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
index 6c064820fd..6059e81cd8 100644
--- a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.6-iimpi-2025a.eb
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-NVHPC-25.1.eb
@@ -1,18 +1,18 @@
 name = 'HDF5'
 # Note: Odd minor releases are only RCs and should not be used.
-version = '1.14.6'
+version = '1.14.5'
 
 homepage = 'https://portal.hdfgroup.org/display/support'
 description = """HDF5 is a data model, library, and file format for storing and managing data.
  It supports an unlimited variety of datatypes, and is designed for flexible
  and efficient I/O and for high volume and complex data."""
 
-toolchain = {'name': 'iimpi', 'version': '2025a'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'pic': True, 'usempi': True}
 
 source_urls = ['https://github.com/HDFGroup/hdf5/archive']
 sources = ['hdf5_%(version)s.tar.gz']
-checksums = ['09ee1c671a87401a5201c06106650f62badeea5a3b3941e9b1e2e1e08317357f']
+checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350']
 
 dependencies = [
     ('zlib', '1.3.1'),

Updated software VASP-6.5.0-NVHPC-25.1.eb

Diff against VASP-6.5.0-intel-2024a.eb

easybuild/easyconfigs/v/VASP/VASP-6.5.0-intel-2024a.eb

diff --git a/easybuild/easyconfigs/v/VASP/VASP-6.5.0-intel-2024a.eb b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
index 55a3a6b99c..8ed0bc2c53 100644
--- a/easybuild/easyconfigs/v/VASP/VASP-6.5.0-intel-2024a.eb
+++ b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
@@ -1,5 +1,4 @@
 # This build enables both HDF5 and Wannier-90, both are optional but recommended
-# It also upgrades the build to Intel's OneAPI
 # Furthermore, it sets the vdw_kernel as an external file (courtesy of Mikael Öhman)
 # Author: J. Saßmannshausen (Imperial College London/UK)
 
@@ -16,8 +15,7 @@ from first principles.
 
 This build includes HDF5 and the Wannier-90 functions."""
 
-toolchain = {'name': 'intel', 'version': '2024a'}
-toolchainopts = {'usempi': True}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 
 download_instructions = """VASP is proprietary software, see http://www.vasp.at/index.php/faqs
 on how to obtain a license for the software."""
@@ -26,7 +24,7 @@ sources = [
     'vdw_kernel.bindat.%(version)s.zip',
 ]
 patches = [
-    'VASP-6.5.0_enable_hdf5_wannier90.patch',
+    'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch',
     'VASP-6.5.0_external_vdwkernel.patch',
 ]
 checksums = [
@@ -34,18 +32,20 @@ checksums = [
      '87f5a5416633af20fa8ea63f3348db477d8fc378feab4f839a617fc0663875f9'},
     {'vdw_kernel.bindat.6.5.0.zip':
      'b2b4bf577e6d4ca1aa6d463cf9325afb834a88099177fb585fe90b0b677f8484'},
-    {'VASP-6.5.0_enable_hdf5_wannier90.patch':
-     '3b4701f669da8b9e63e46f4fcaa31e2ec17de8045495af802181ae2f2ecd7636'},
+    {'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch':
+     '85b0fc899e7896aa5ce1cebcb584b0958892a94a53aa08661f6f203f3bfadb89'},
     {'VASP-6.5.0_external_vdwkernel.patch':
      '1533ab6e045e4028f9e7d0de6b026654b9079569be81353bb460991657e48f0c'},
 ]
 
 dependencies = [
+    ('FFTW', '3.3.10'),
     ('HDF5', '1.14.5'),
     ('Wannier90', '3.1.0'),
 ]
 
-prebuildopts = 'cp arch/makefile.include.oneapi ./makefile.include && '
+prebuildopts = "cp arch/makefile.include.nvhpc_acc makefile.include && "
+prebuildopts += "sed -i 's/-gpu=[0-9cuda,.]*/-gpu=%(cuda_cc_nvhpc)s,cuda%(cudaver)s/g' makefile.include && "
 
 # VASP uses LIBS as a list of folders
 prebuildopts += 'unset LIBS && '
@@ -58,8 +58,8 @@ buildopts += 'DEPS=1 '  # required for VASP parallel builds
 # during some of the tests.
 # https://www.vasp.at/wiki/index.php/Validation_tests
 
-# Recommended to run the testsuite with 4 MPI processes
-_vasp_test_mpirun = "mpirun -np 4"
+# Offloading to GPUs with NCCL requires 1 GPU per MPI-rank
+_vasp_test_mpirun = "mpirun -np 1"
 
 # skip tests that are too long
 _vasp_test_skip = 'HEG_333_LW '
Diff against VASP-6.5.0-foss-2024a.eb

easybuild/easyconfigs/v/VASP/VASP-6.5.0-foss-2024a.eb

diff --git a/easybuild/easyconfigs/v/VASP/VASP-6.5.0-foss-2024a.eb b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
index c30995fa2e..8ed0bc2c53 100644
--- a/easybuild/easyconfigs/v/VASP/VASP-6.5.0-foss-2024a.eb
+++ b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
@@ -15,8 +15,7 @@ from first principles.
 
 This build includes HDF5 and the Wannier-90 functions."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
-toolchainopts = {'usempi': True}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 
 download_instructions = """VASP is proprietary software, see http://www.vasp.at/index.php/faqs
 on how to obtain a license for the software."""
@@ -25,7 +24,7 @@ sources = [
     'vdw_kernel.bindat.%(version)s.zip',
 ]
 patches = [
-    'VASP-6.5.0_enable_hdf5_wannier90.patch',
+    'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch',
     'VASP-6.5.0_external_vdwkernel.patch',
 ]
 checksums = [
@@ -33,18 +32,20 @@ checksums = [
      '87f5a5416633af20fa8ea63f3348db477d8fc378feab4f839a617fc0663875f9'},
     {'vdw_kernel.bindat.6.5.0.zip':
      'b2b4bf577e6d4ca1aa6d463cf9325afb834a88099177fb585fe90b0b677f8484'},
-    {'VASP-6.5.0_enable_hdf5_wannier90.patch':
-     '3b4701f669da8b9e63e46f4fcaa31e2ec17de8045495af802181ae2f2ecd7636'},
+    {'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch':
+     '85b0fc899e7896aa5ce1cebcb584b0958892a94a53aa08661f6f203f3bfadb89'},
     {'VASP-6.5.0_external_vdwkernel.patch':
      '1533ab6e045e4028f9e7d0de6b026654b9079569be81353bb460991657e48f0c'},
 ]
 
 dependencies = [
+    ('FFTW', '3.3.10'),
     ('HDF5', '1.14.5'),
     ('Wannier90', '3.1.0'),
 ]
 
-prebuildopts = 'cp arch/makefile.include.gnu ./makefile.include && '
+prebuildopts = "cp arch/makefile.include.nvhpc_acc makefile.include && "
+prebuildopts += "sed -i 's/-gpu=[0-9cuda,.]*/-gpu=%(cuda_cc_nvhpc)s,cuda%(cudaver)s/g' makefile.include && "
 
 # VASP uses LIBS as a list of folders
 prebuildopts += 'unset LIBS && '
@@ -57,8 +58,8 @@ buildopts += 'DEPS=1 '  # required for VASP parallel builds
 # during some of the tests.
 # https://www.vasp.at/wiki/index.php/Validation_tests
 
-# Recommended to run the testsuite with 4 MPI processes
-_vasp_test_mpirun = "mpirun -np 4"
+# Offloading to GPUs with NCCL requires 1 GPU per MPI-rank
+_vasp_test_mpirun = "mpirun -np 1"
 
 # skip tests that are too long
 _vasp_test_skip = 'HEG_333_LW '
Diff against VASP-6.3.2-nvofbf-2022.07.eb

easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb

diff --git a/easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
index ea2a9c6c20..8ed0bc2c53 100644
--- a/easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb
+++ b/easybuild/easyconfigs/v/VASP/VASP-6.5.0-NVHPC-25.1.eb
@@ -1,63 +1,97 @@
+# This build enables both HDF5 and Wannier-90, both are optional but recommended
+# Furthermore, it sets the vdw_kernel as an external file (courtesy of Mikael Öhman)
+# Author: J. Saßmannshausen (Imperial College London/UK)
+
 easyblock = 'MakeCp'
 
 name = 'VASP'
-version = '6.3.2'
-
-homepage = 'https://www.vasp.at'
-description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale
-materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics,
-from first principles."""
-
-toolchain = {'name': 'nvofbf', 'version': '2022.07'}
-toolchainopts = {'openmp': True}
-
-download_instructions = """Vasp is proprietary software, see http://www.vasp.at/index.php/faqs
- on how to get access to the code."""
-
-sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a']
-
-prebuildopts = 'cp arch/makefile.include.nvhpc_omp_acc ./makefile.include && '
-
-# Makefile uses LIBS as a list of folders
+version = '6.5.0'
+
+homepage = 'http://www.vasp.at'
+description = """The Vienna Ab initio Simulation Package (VASP) is a
+computer program for atomic scale materials modelling, e.g. electronic
+structure calculations and quantum-mechanical molecular dynamics,
+from first principles.
+
+This build includes HDF5 and the Wannier-90 functions."""
+
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
+
+download_instructions = """VASP is proprietary software, see http://www.vasp.at/index.php/faqs
+on how to obtain a license for the software."""
+sources = [
+    '%(namelower)s.%(version)s.tar',
+    'vdw_kernel.bindat.%(version)s.zip',
+]
+patches = [
+    'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch',
+    'VASP-6.5.0_external_vdwkernel.patch',
+]
+checksums = [
+    {'vasp.6.5.0.tar':
+     '87f5a5416633af20fa8ea63f3348db477d8fc378feab4f839a617fc0663875f9'},
+    {'vdw_kernel.bindat.6.5.0.zip':
+     'b2b4bf577e6d4ca1aa6d463cf9325afb834a88099177fb585fe90b0b677f8484'},
+    {'VASP-6.5.0_enable_hdf5_wannier90_nvhpc.patch':
+     '85b0fc899e7896aa5ce1cebcb584b0958892a94a53aa08661f6f203f3bfadb89'},
+    {'VASP-6.5.0_external_vdwkernel.patch':
+     '1533ab6e045e4028f9e7d0de6b026654b9079569be81353bb460991657e48f0c'},
+]
+
+dependencies = [
+    ('FFTW', '3.3.10'),
+    ('HDF5', '1.14.5'),
+    ('Wannier90', '3.1.0'),
+]
+
+prebuildopts = "cp arch/makefile.include.nvhpc_acc makefile.include && "
+prebuildopts += "sed -i 's/-gpu=[0-9cuda,.]*/-gpu=%(cuda_cc_nvhpc)s,cuda%(cudaver)s/g' makefile.include && "
+
+# VASP uses LIBS as a list of folders
 prebuildopts += 'unset LIBS && '
 
-local_targets = ['std', 'gam', 'ncl']
-
-buildopts = '%s ' % ' '.join(local_targets)
-buildopts += 'FFTW_ROOT="${EBROOTFFTW}" '
+buildopts = 'all '  # building std gam and ncl
 buildopts += 'DEPS=1 '  # required for VASP parallel builds
 
+# Testing, can take a long time!
+# Recommended to set ulimit -s to unlimited, as else segfaults will occure
+# during some of the tests.
 # https://www.vasp.at/wiki/index.php/Validation_tests
 
-# it is recommended to run the testsuite with 4 MPI processes,
-# but it's also recommended to use only 1 MPI process per GPU,
-# so running the test on GPUs requires 4 GPUs?
-local_test_mpiprocs = 4
-
-pretestopts = 'export MPIRUN="mpirun -np %s -x OMP_NUM_THREADS=4 -x OMP_STACKSIZE=512m" && ' % local_test_mpiprocs
-pretestopts += 'export VASP_TESTSUITE_EXE_STD="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_std" && '
-pretestopts += 'export VASP_TESTSUITE_EXE_NCL="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_ncl" && '
-pretestopts += 'export VASP_TESTSUITE_EXE_GAM="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_gam" && '
+# Offloading to GPUs with NCCL requires 1 GPU per MPI-rank
+_vasp_test_mpirun = "mpirun -np 1"
 
 # skip tests that are too long
-local_test_skip = 'HEG_333_LW '
-
-# these tests are failing when using 4 V100 GPUs (still leaves about 50 successul tests)
-local_test_skip += "bulk_GaAs_scGW_ALGO=D_sym bulk_GaAs_scGW_ALGO=D_sym_RPR bulk_GaAs_scGW_sym bulk_GaAs_scGW_sym_RPR "
-local_test_skip += "bulk_InP_SOC_DFT_ISYM=3 bulk_InP_SOC_DFT_ISYM=3_RPR bulk_InP_SOC_PBE0_nosym bulk_InP_SOC_PBE0_sym "
-local_test_skip += "bulk_InP_SOC_PBE0_sym_RPR bulk_SiO2_HSE bulk_SiO2_HSE_RPR bulk_SiO2_LPEAD bulk_SiO2_LPEAD_RPR "
-local_test_skip += "bulk_SiO2_PBE0 bulk_SiO2_PBE0_RPR GaAs_LEPSILON_LPEAD GaAs_LEPSILON_LPEAD_RPR SiC_HSE06_ALGO=A "
-local_test_skip += "SiC_HSE06_ALGO=A_RPR SiC_HSE06_ALGO=D SiC_HSE06_ALGO=D_RPR"
-
-pretestopts += 'export VASP_TESTSUITE_SKIP_TESTS="%s" && ' % local_test_skip
+_vasp_test_skip = 'HEG_333_LW '
+
+_vasp_test_env = [
+    "export OMP_NUM_THREADS=1",
+    "export OMP_STACKSIZE=512m",
+    "ulimit -s unlimited",
+    f"export VASP_TESTSUITE_EXE_STD='{_vasp_test_mpirun} %(builddir)s/vasp.%(version)s/bin/vasp_std'",
+    f"export VASP_TESTSUITE_EXE_NCL='{_vasp_test_mpirun} %(builddir)s/vasp.%(version)s/bin/vasp_ncl'",
+    f"export VASP_TESTSUITE_EXE_GAM='{_vasp_test_mpirun} %(builddir)s/vasp.%(version)s/bin/vasp_gam'",
+    f"export VASP_TESTSUITE_SKIP_TESTS='{_vasp_test_skip}'",
+    "",
+]
+
+pretestopts = " && ".join(_vasp_test_env)
 runtest = 'test'
 
-files_to_copy = [(['bin/vasp_' + x for x in local_targets], 'bin')]
+files_to_copy = [
+    (['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin'),
+    (['../vdw_kernel.bindat'], '.'),
+]
 
 sanity_check_paths = {
-    'files': ['bin/vasp_' + x for x in local_targets],
-    'dirs': []
+    'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'],
+    'dirs': [],
+}
+
+# This environment variable works together with the vasp-6.4.3_vdw_kernel_file-HDF5-Wannier.patch
+# so that it can be used without having to copy this file around.
+modextravars = {
+    'VDW_KERNEL': '%(installdir)s/vdw_kernel.bindat',
 }
 
 moduleclass = 'phys'

Updated software Wannier90-3.1.0-NVHPC-25.1.eb

Diff against Wannier90-3.1.0-intel-2025b.eb

easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025b.eb

diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025b.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
index 2fc9d1ca03..445248d6c0 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025b.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
@@ -6,7 +6,7 @@ version = '3.1.0'
 homepage = 'http://www.wannier.org'
 description = """A tool for obtaining maximally-localised Wannier functions"""
 
-toolchain = {'name': 'intel', 'version': '2025b'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'usempi': True}
 
 github_account = 'wannier-developers'
@@ -20,7 +20,7 @@ checksums = [
     'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30',  # Wannier90_3.1.0_fix_mpi_include.patch
 ]
 
-buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismatch" LDOPTS="$FFLAGS" '
+buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
 buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
 buildopts += 'COMMS=mpi'
 
Diff against Wannier90-3.1.0-foss-2025b.eb

easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2025b.eb

diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2025b.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
index 92f9686f56..445248d6c0 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2025b.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
@@ -6,7 +6,7 @@ version = '3.1.0'
 homepage = 'http://www.wannier.org'
 description = """A tool for obtaining maximally-localised Wannier functions"""
 
-toolchain = {'name': 'foss', 'version': '2025b'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'usempi': True}
 
 github_account = 'wannier-developers'
@@ -20,7 +20,7 @@ checksums = [
     'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30',  # Wannier90_3.1.0_fix_mpi_include.patch
 ]
 
-buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismatch" LDOPTS="$FFLAGS" '
+buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
 buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
 buildopts += 'COMMS=mpi'
 
Diff against Wannier90-3.1.0-intel-2025a.eb

easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025a.eb

diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
index 450966b2eb..445248d6c0 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2025a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-NVHPC-25.1.eb
@@ -6,7 +6,7 @@ version = '3.1.0'
 homepage = 'http://www.wannier.org'
 description = """A tool for obtaining maximally-localised Wannier functions"""
 
-toolchain = {'name': 'intel', 'version': '2025a'}
+toolchain = {'name': 'NVHPC', 'version': '25.1'}
 toolchainopts = {'usempi': True}
 
 github_account = 'wannier-developers'

@lexming
Copy link
Contributor Author

lexming commented Jun 24, 2025

Test report by @lexming
SUCCESS
Build succeeded for 26 out of 26 (12 easyconfigs in total)
node500.anansi.os - Linux Rocky Linux 8.10 (Green Obsidian), x86_64, Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz, 1 x NVIDIA NVIDIA GeForce GTX 1080 Ti, 570.124.06, Python 3.9.20
See https://gist.github.com/lexming/af8987315508c0508f85aeca6ab24363 for a full test report.

@lexming
Copy link
Contributor Author

lexming commented Jul 28, 2025

Test report by @lexming
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node401.hydra.os - Linux Rocky Linux 9.5 (Blue Onyx), x86_64, AMD EPYC 7282 16-Core Processor, 1 x NVIDIA NVIDIA A100-PCIE-40GB, 570.158.01, Python 3.9.21
See https://gist.github.com/lexming/d0ba3369bf2af66e17af91d832e0ffaf for a full test report.

@lexming
Copy link
Contributor Author

lexming commented Jul 28, 2025

Test report by @lexming
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node251.hydra.os - Linux Rocky Linux 9.5 (Blue Onyx), x86_64, Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, 1 x NVIDIA Tesla P100-PCIE-16GB, 570.158.01, Python 3.9.21
See https://gist.github.com/lexming/495e23eab1d4d6b4c524d869681e26db for a full test report.

@Thyre Thyre added the manual_download Sources require manual download label Oct 17, 2025
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
… v6.5.0

Minor modifications to the easyconfig for nvidia-compilers and NVHPC, so
they build on EESSI. Otherwise much the same as
<github.com/easybuilders/pull/23188>

Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
… v6.5.0

Minor modifications to the easyconfig for nvidia-compilers and NVHPC, so
they build on EESSI. Otherwise much the same as
<github.com/easybuilders/pull/23188>

Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
@adammccartney
Copy link
Contributor

Thanks for the work here, was useful to build VASP-6.5.0 on for us.
Just a note on the naming, the pr references VASP v6.5.1, but the easyconfig is to build VASP v6.5.0

@lexming lexming changed the title {phys}[NVHPC/25.1] FFTW v3.3.10, HDF5 v1.14.5, Wannier90 v3.1.0, VASP v6.5.1 {phys}[NVHPC/25.1] FFTW v3.3.10, HDF5 v1.14.5, Wannier90 v3.1.0, VASP v6.5.0 Dec 5, 2025
@lexming
Copy link
Contributor Author

lexming commented Dec 5, 2025

@adammccartney thanks for feedback, title of PR fixed

@boegel
Copy link
Member

boegel commented Dec 14, 2025

Test report by @boegel
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3788
FAILED
Build succeeded for 14 out of 17 (total: 1 hour 36 mins 29 secs) (14 easyconfigs in total)
node4245.shinx.os - Linux RHEL 9.6, x86_64, AMD EPYC 9654 96-Core Processor (zen4), Python 3.9.21
See https://gist.github.com/boegel/f8c13adaad4a067dacfc3d6b1ebc25c5 for a full test report.

edit: failures for VASP because I don't have sources available for VASP 6.5.0

@github-actions github-actions bot added the 2024a issues & PRs related to 2024a common toolchains label Dec 14, 2025
@boegel boegel added this to the next release (5.2.0) milestone Dec 15, 2025
@boegel
Copy link
Member

boegel commented Dec 15, 2025

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="FFTW-3.3.10-NVHPC-25.1.eb HDF5-1.14.5-NVHPC-25.1.eb Wannier90-3.1.0-NVHPC-25.1.eb"

@boegelbot
Copy link
Collaborator

@boegel: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=23188 EB_ARGS="FFTW-3.3.10-NVHPC-25.1.eb HDF5-1.14.5-NVHPC-25.1.eb Wannier90-3.1.0-NVHPC-25.1.eb" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23188 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9148

Test results coming soon (I hope)...

Details

- notification for comment with ID 3653767768 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 5 out of 5 (total: 1 hour 22 mins 23 secs) (3 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/81c19f3d2bae75589546224bb544931e for a full test report.

@boegel
Copy link
Member

boegel commented Dec 15, 2025

Going in, thanks @lexming!

@boegel boegel merged commit 0a74984 into easybuilders:develop Dec 15, 2025
8 checks passed
@lexming lexming deleted the vasp-nvhpc branch December 15, 2025 10:56
@boegel boegel removed the change label Dec 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains manual_download Sources require manual download update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants