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

{chem}[intel/2024a] FHI-aims v240920_2, FHI-aims v240920 w/ ELPA #22211

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

sassy-crick
Copy link
Collaborator

@sassy-crick sassy-crick commented Jan 24, 2025

(created using eb --new-pr)

Requires:

For older version see here #20793

…_2-intel-2024a-ELPA.eb, FHI-aims-240920-intel-2024a.eb
Copy link

github-actions bot commented Jan 24, 2025

Updated software FHI-aims-240920-intel-2024a.eb

Diff against FHI-aims-240920_2-intel-2024a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
index 6d5b64d8a2..060371a847 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
@@ -10,7 +10,7 @@
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '240920_2'
+version = '240920'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -34,7 +34,7 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
+checksums = ['f26d6bede3f5c6be73403f46f83a8b082964f09d5ee875b6ae53decad96eeccd']
 
 builddependencies = [('CMake', '3.29.3')]
 
Diff against FHI-aims-240920_2-intel-2024a-ELPA.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
index 75e6966b30..060371a847 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
@@ -4,16 +4,13 @@
 # Authors::   Dugan Witherick (University of Warwick)
 # Updated to 240507
 # Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
-# This version makes use of an external ELPA installation. 
-# Note: You need to know which ELPA kernel was used (see below for details)!
-# The automatic ELPA kernel selection is courtesy of Steen Lysgaard
 # J. Sassmannshausen (Imperial College London/UK)
+##
 
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '240920_2'
-versionsuffix = '-ELPA'
+version = '240920'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -23,8 +20,6 @@ DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
 particularly efficient for molecular systems and nanostructures, while        
 maintaining high numerical accuracy for all production tasks. Production      
 calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
-
-This build utilises an external ELPA installation!
 """
 
 toolchain = {'name': 'intel', 'version': '2024a'}
@@ -39,34 +34,15 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
+checksums = ['f26d6bede3f5c6be73403f46f83a8b082964f09d5ee875b6ae53decad96eeccd']
 
 builddependencies = [('CMake', '3.29.3')]
 
-dependencies = [
-    ('ELPA', '2024.05.001'),
-]
-
-# Check the AVX capabilities of the ELPA installation, courtesy of Steen Lysgaard
-preconfigopts = """
-AVX_CAP=$(elpa2_print_kernels | grep -o 'AVX[0-9]*' | sort -r | head -n1)
-if [ -z "$AVX_CAP" ]; then
-    AVX_CAP="Generic"
-fi
-echo 'ELPA-Kernel is' $AVX_CAP
-"""
-
 configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
 configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
-# This is for ELPA. Build ELAP first to see which kernel is selected!
-# Possible values are: AVX, AVX2 and AVX512, but will be automatically selected from the script above
-# We also need to include the libelpa library so the -DLIBS overwrites the previous ones
-configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core -lelpa" '
-configopts += ' -DUSE_EXTERNAL_ELPA=ON -DELPA2_KERNEL="$AVX_CAP" '
-configopts += ' -DINC_PATHS=$EBROOTELPA/include/elpa-$EBVERSIONELPA/modules/ '
 
 postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
Diff against FHI-aims-221103-intel-2022a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
index 7e9bb34bb3..060371a847 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
@@ -2,27 +2,28 @@
 # This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
 #
 # Authors::   Dugan Witherick (University of Warwick)
-# Updated to 210716_3
+# Updated to 240507
+# Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
 # J. Sassmannshausen (Imperial College London/UK)
 ##
+
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '221103'
+version = '240920'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
-full-potential electronic structure code package for computational molecular
-and materials science (non-periodic and periodic systems). The code supports
-DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
-particularly efficient for molecular systems and nanostructures, while
-maintaining high numerical accuracy for all production tasks. Production
-calculations handle up to several thousand atoms and can efficiently use (ten)
-thousands of cores. 
+full-potential electronic structure code package for computational molecular  
+and materials science (non-periodic and periodic systems). The code supports  
+DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is     
+particularly efficient for molecular systems and nanostructures, while        
+maintaining high numerical accuracy for all production tasks. Production      
+calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
 """
 
-toolchain = {'name': 'intel', 'version': '2022a'}
-toolchainopts = {'opt': True, 'precise': True}
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'opt': True, 'precise': True, 'usempi': True, 'oneapi': True}
 
 download_instructions = """
 The source code must be downloaded manually from the FHI-aims club
@@ -33,19 +34,17 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['1905147a15968b6b719a4f5d9495a958df648d3ccee58f5012734be5d6727749']
+checksums = ['f26d6bede3f5c6be73403f46f83a8b082964f09d5ee875b6ae53decad96eeccd']
 
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [('CMake', '3.29.3')]
 
-configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" '
+configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
-configopts += ' -DLIB_PATHS="$CMAKE_LIBRARY_PATH" '
-configopts += ' -DCMAKE_C_FLAGS="$CFLAGS -ip" '
-configopts += ' -DCMAKE_Fortran_FLAGS="$FFLAGS -ip" '
+configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
 
-postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc,external} %(installdir)s/",
+postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{testcases,utilities} %(installdir)s/"]
 
@@ -54,4 +53,8 @@ sanity_check_paths = {
     'dirs': [],
 }
 
+sanity_check_commands = [
+    'aims.x --version &> /dev/null'
+]
+
 moduleclass = 'chem'

Updated software FHI-aims-240920_2-intel-2024a-ELPA.eb

Diff against FHI-aims-240920_2-intel-2024a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
index 6d5b64d8a2..75e6966b30 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
@@ -4,13 +4,16 @@
 # Authors::   Dugan Witherick (University of Warwick)
 # Updated to 240507
 # Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
+# This version makes use of an external ELPA installation. 
+# Note: You need to know which ELPA kernel was used (see below for details)!
+# The automatic ELPA kernel selection is courtesy of Steen Lysgaard
 # J. Sassmannshausen (Imperial College London/UK)
-##
 
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
 version = '240920_2'
+versionsuffix = '-ELPA'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -20,6 +23,8 @@ DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
 particularly efficient for molecular systems and nanostructures, while        
 maintaining high numerical accuracy for all production tasks. Production      
 calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
+
+This build utilises an external ELPA installation!
 """
 
 toolchain = {'name': 'intel', 'version': '2024a'}
@@ -38,11 +43,30 @@ checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
 
 builddependencies = [('CMake', '3.29.3')]
 
+dependencies = [
+    ('ELPA', '2024.05.001'),
+]
+
+# Check the AVX capabilities of the ELPA installation, courtesy of Steen Lysgaard
+preconfigopts = """
+AVX_CAP=$(elpa2_print_kernels | grep -o 'AVX[0-9]*' | sort -r | head -n1)
+if [ -z "$AVX_CAP" ]; then
+    AVX_CAP="Generic"
+fi
+echo 'ELPA-Kernel is' $AVX_CAP
+"""
+
 configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
 configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
+# This is for ELPA. Build ELAP first to see which kernel is selected!
+# Possible values are: AVX, AVX2 and AVX512, but will be automatically selected from the script above
+# We also need to include the libelpa library so the -DLIBS overwrites the previous ones
+configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core -lelpa" '
+configopts += ' -DUSE_EXTERNAL_ELPA=ON -DELPA2_KERNEL="$AVX_CAP" '
+configopts += ' -DINC_PATHS=$EBROOTELPA/include/elpa-$EBVERSIONELPA/modules/ '
 
 postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
Diff against FHI-aims-240920-intel-2024a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
index 060371a847..75e6966b30 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
@@ -4,13 +4,16 @@
 # Authors::   Dugan Witherick (University of Warwick)
 # Updated to 240507
 # Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
+# This version makes use of an external ELPA installation. 
+# Note: You need to know which ELPA kernel was used (see below for details)!
+# The automatic ELPA kernel selection is courtesy of Steen Lysgaard
 # J. Sassmannshausen (Imperial College London/UK)
-##
 
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '240920'
+version = '240920_2'
+versionsuffix = '-ELPA'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -20,6 +23,8 @@ DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
 particularly efficient for molecular systems and nanostructures, while        
 maintaining high numerical accuracy for all production tasks. Production      
 calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
+
+This build utilises an external ELPA installation!
 """
 
 toolchain = {'name': 'intel', 'version': '2024a'}
@@ -34,15 +39,34 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['f26d6bede3f5c6be73403f46f83a8b082964f09d5ee875b6ae53decad96eeccd']
+checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
 
 builddependencies = [('CMake', '3.29.3')]
 
+dependencies = [
+    ('ELPA', '2024.05.001'),
+]
+
+# Check the AVX capabilities of the ELPA installation, courtesy of Steen Lysgaard
+preconfigopts = """
+AVX_CAP=$(elpa2_print_kernels | grep -o 'AVX[0-9]*' | sort -r | head -n1)
+if [ -z "$AVX_CAP" ]; then
+    AVX_CAP="Generic"
+fi
+echo 'ELPA-Kernel is' $AVX_CAP
+"""
+
 configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
 configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
+# This is for ELPA. Build ELAP first to see which kernel is selected!
+# Possible values are: AVX, AVX2 and AVX512, but will be automatically selected from the script above
+# We also need to include the libelpa library so the -DLIBS overwrites the previous ones
+configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core -lelpa" '
+configopts += ' -DUSE_EXTERNAL_ELPA=ON -DELPA2_KERNEL="$AVX_CAP" '
+configopts += ' -DINC_PATHS=$EBROOTELPA/include/elpa-$EBVERSIONELPA/modules/ '
 
 postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
Diff against FHI-aims-221103-intel-2022a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
index 7e9bb34bb3..75e6966b30 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
@@ -2,27 +2,33 @@
 # This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
 #
 # Authors::   Dugan Witherick (University of Warwick)
-# Updated to 210716_3
+# Updated to 240507
+# Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
+# This version makes use of an external ELPA installation. 
+# Note: You need to know which ELPA kernel was used (see below for details)!
+# The automatic ELPA kernel selection is courtesy of Steen Lysgaard
 # J. Sassmannshausen (Imperial College London/UK)
-##
+
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '221103'
+version = '240920_2'
+versionsuffix = '-ELPA'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
-full-potential electronic structure code package for computational molecular
-and materials science (non-periodic and periodic systems). The code supports
-DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
-particularly efficient for molecular systems and nanostructures, while
-maintaining high numerical accuracy for all production tasks. Production
-calculations handle up to several thousand atoms and can efficiently use (ten)
-thousands of cores. 
+full-potential electronic structure code package for computational molecular  
+and materials science (non-periodic and periodic systems). The code supports  
+DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is     
+particularly efficient for molecular systems and nanostructures, while        
+maintaining high numerical accuracy for all production tasks. Production      
+calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
+
+This build utilises an external ELPA installation!
 """
 
-toolchain = {'name': 'intel', 'version': '2022a'}
-toolchainopts = {'opt': True, 'precise': True}
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'opt': True, 'precise': True, 'usempi': True, 'oneapi': True}
 
 download_instructions = """
 The source code must be downloaded manually from the FHI-aims club
@@ -33,19 +39,36 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['1905147a15968b6b719a4f5d9495a958df648d3ccee58f5012734be5d6727749']
+checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
+
+builddependencies = [('CMake', '3.29.3')]
 
-builddependencies = [('CMake', '3.24.3')]
+dependencies = [
+    ('ELPA', '2024.05.001'),
+]
 
-configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" '
+# Check the AVX capabilities of the ELPA installation, courtesy of Steen Lysgaard
+preconfigopts = """
+AVX_CAP=$(elpa2_print_kernels | grep -o 'AVX[0-9]*' | sort -r | head -n1)
+if [ -z "$AVX_CAP" ]; then
+    AVX_CAP="Generic"
+fi
+echo 'ELPA-Kernel is' $AVX_CAP
+"""
+
+configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
-configopts += ' -DLIB_PATHS="$CMAKE_LIBRARY_PATH" '
-configopts += ' -DCMAKE_C_FLAGS="$CFLAGS -ip" '
-configopts += ' -DCMAKE_Fortran_FLAGS="$FFLAGS -ip" '
+configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
+# This is for ELPA. Build ELAP first to see which kernel is selected!
+# Possible values are: AVX, AVX2 and AVX512, but will be automatically selected from the script above
+# We also need to include the libelpa library so the -DLIBS overwrites the previous ones
+configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core -lelpa" '
+configopts += ' -DUSE_EXTERNAL_ELPA=ON -DELPA2_KERNEL="$AVX_CAP" '
+configopts += ' -DINC_PATHS=$EBROOTELPA/include/elpa-$EBVERSIONELPA/modules/ '
 
-postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc,external} %(installdir)s/",
+postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{testcases,utilities} %(installdir)s/"]
 
@@ -54,4 +77,8 @@ sanity_check_paths = {
     'dirs': [],
 }
 
+sanity_check_commands = [
+    'aims.x --version &> /dev/null'
+]
+
 moduleclass = 'chem'

Updated software FHI-aims-240920_2-intel-2024a.eb

Diff against FHI-aims-240920_2-intel-2024a-ELPA.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
index 75e6966b30..6d5b64d8a2 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a-ELPA.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
@@ -4,16 +4,13 @@
 # Authors::   Dugan Witherick (University of Warwick)
 # Updated to 240507
 # Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
-# This version makes use of an external ELPA installation. 
-# Note: You need to know which ELPA kernel was used (see below for details)!
-# The automatic ELPA kernel selection is courtesy of Steen Lysgaard
 # J. Sassmannshausen (Imperial College London/UK)
+##
 
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
 version = '240920_2'
-versionsuffix = '-ELPA'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -23,8 +20,6 @@ DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
 particularly efficient for molecular systems and nanostructures, while        
 maintaining high numerical accuracy for all production tasks. Production      
 calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
-
-This build utilises an external ELPA installation!
 """
 
 toolchain = {'name': 'intel', 'version': '2024a'}
@@ -43,30 +38,11 @@ checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
 
 builddependencies = [('CMake', '3.29.3')]
 
-dependencies = [
-    ('ELPA', '2024.05.001'),
-]
-
-# Check the AVX capabilities of the ELPA installation, courtesy of Steen Lysgaard
-preconfigopts = """
-AVX_CAP=$(elpa2_print_kernels | grep -o 'AVX[0-9]*' | sort -r | head -n1)
-if [ -z "$AVX_CAP" ]; then
-    AVX_CAP="Generic"
-fi
-echo 'ELPA-Kernel is' $AVX_CAP
-"""
-
 configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
 configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
-# This is for ELPA. Build ELAP first to see which kernel is selected!
-# Possible values are: AVX, AVX2 and AVX512, but will be automatically selected from the script above
-# We also need to include the libelpa library so the -DLIBS overwrites the previous ones
-configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core -lelpa" '
-configopts += ' -DUSE_EXTERNAL_ELPA=ON -DELPA2_KERNEL="$AVX_CAP" '
-configopts += ' -DINC_PATHS=$EBROOTELPA/include/elpa-$EBVERSIONELPA/modules/ '
 
 postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
Diff against FHI-aims-240920-intel-2024a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
index 060371a847..6d5b64d8a2 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
@@ -10,7 +10,7 @@
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '240920'
+version = '240920_2'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
@@ -34,7 +34,7 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['f26d6bede3f5c6be73403f46f83a8b082964f09d5ee875b6ae53decad96eeccd']
+checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
 
 builddependencies = [('CMake', '3.29.3')]
 
Diff against FHI-aims-221103-intel-2022a.eb

easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb

diff --git a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
index 7e9bb34bb3..6d5b64d8a2 100644
--- a/easybuild/easyconfigs/f/FHI-aims/FHI-aims-221103-intel-2022a.eb
+++ b/easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
@@ -2,27 +2,28 @@
 # This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
 #
 # Authors::   Dugan Witherick (University of Warwick)
-# Updated to 210716_3
+# Updated to 240507
+# Help from the FHI-aims developers and Alexander Grund to move to oneAPI is greatly appreciated
 # J. Sassmannshausen (Imperial College London/UK)
 ##
+
 easyblock = 'CMakeMake'
 
 name = 'FHI-aims'
-version = '221103'
+version = '240920_2'
 
 homepage = 'https://fhi-aims.org/'
 description = """FHI-aims is an efficient, accurate all-electron,
-full-potential electronic structure code package for computational molecular
-and materials science (non-periodic and periodic systems). The code supports
-DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is
-particularly efficient for molecular systems and nanostructures, while
-maintaining high numerical accuracy for all production tasks. Production
-calculations handle up to several thousand atoms and can efficiently use (ten)
-thousands of cores. 
+full-potential electronic structure code package for computational molecular  
+and materials science (non-periodic and periodic systems). The code supports  
+DFT (semilocal and hybrid) and many-body perturbation theory. FHI-aims is     
+particularly efficient for molecular systems and nanostructures, while        
+maintaining high numerical accuracy for all production tasks. Production      
+calculations handle up to several thousand atoms and can efficiently use (ten)thousands of cores.
 """
 
-toolchain = {'name': 'intel', 'version': '2022a'}
-toolchainopts = {'opt': True, 'precise': True}
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'opt': True, 'precise': True, 'usempi': True, 'oneapi': True}
 
 download_instructions = """
 The source code must be downloaded manually from the FHI-aims club
@@ -33,19 +34,17 @@ FHI-aims club may be found at:
 https://fhi-aims.org/get-the-code-menu/get-the-code """
 
 sources = ['%(namelower)s.%(version)s.tgz']
-checksums = ['1905147a15968b6b719a4f5d9495a958df648d3ccee58f5012734be5d6727749']
+checksums = ['b585299e21aab90b613aa97f48abd82b117feaa074367511ba55966f458cb49a']
 
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [('CMake', '3.29.3')]
 
-configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" '
+configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX"  -DCMAKE_C_COMPILER="$MPICC" '
 configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
-configopts += ' -DLIB_PATHS="$CMAKE_LIBRARY_PATH" '
-configopts += ' -DCMAKE_C_FLAGS="$CFLAGS -ip" '
-configopts += ' -DCMAKE_Fortran_FLAGS="$FFLAGS -ip" '
+configopts += ' -DLIB_PATHS="$EBROOTIMKL/mkl/latest/lib/intel64" '
 configopts += ' -DFortran_MIN_FLAGS="-O0 -fp-model precise" '
 configopts += ' -DTARGET_NAME="aims.x" '
 
-postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc,external} %(installdir)s/",
+postinstallcmds = ["cp -ar %(builddir)s/%(namelower)s.%(version)s/{CHANGELOG.md,doc} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{regression_tests,species_defaults} %(installdir)s/",
                    "cp -ar %(builddir)s/%(namelower)s.%(version)s/{testcases,utilities} %(installdir)s/"]
 
@@ -54,4 +53,8 @@ sanity_check_paths = {
     'dirs': [],
 }
 
+sanity_check_commands = [
+    'aims.x --version &> /dev/null'
+]
+
 moduleclass = 'chem'

@sassy-crick
Copy link
Collaborator Author

Test report by @sassy-crick
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
hp - Linux Debian GNU/Linux 12, x86_64, 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz, Python 3.11.2
See https://gist.github.com/sassy-crick/4553af788071bd19376963558729e25d for a full test report.

@sassy-crick
Copy link
Collaborator Author

Test report by @sassy-crick
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
hp - Linux Debian GNU/Linux 12, x86_64, 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz, Python 3.11.2
See https://gist.github.com/sassy-crick/9dfc779c6941f04f9e1ce1b1a9d5f7a1 for a full test report.

"""

configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="$MPICXX" -DCMAKE_C_COMPILER="$MPICC" '
configopts += ' -DLIBS="mkl_scalapack_lp64 mkl_blacs_intelmpi_lp64 mkl_intel_lp64 mkl_sequential mkl_core" '
Copy link
Contributor

Choose a reason for hiding this comment

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

this line is almost the same as line 67 (except for -lalpa), so you can probably remove it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants