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
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
60 changes: 60 additions & 0 deletions easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920-intel-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# 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
# J. Sassmannshausen (Imperial College London/UK)
##

easyblock = 'CMakeMake'

name = 'FHI-aims'
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.
"""

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
(https://fhi-aims.org/get-the-code-menu/login).
Access to the FHI-aims club requires a valid license and registration.
Details on available license options and how to register to access
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']

builddependencies = [('CMake', '3.29.3')]

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" '

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/"]

sanity_check_paths = {
'files': ['bin/aims.x'],
'dirs': [],
}

sanity_check_commands = [
'aims.x --version &> /dev/null'
]

moduleclass = 'chem'
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# 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,
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': '2024a'}
toolchainopts = {'opt': True, 'precise': True, 'usempi': True, 'oneapi': True}

download_instructions = """
The source code must be downloaded manually from the FHI-aims club
(https://fhi-aims.org/get-the-code-menu/login).
Access to the FHI-aims club requires a valid license and registration.
Details on available license options and how to register to access
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']

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" '
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?

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/",
"cp -ar %(builddir)s/%(namelower)s.%(version)s/{testcases,utilities} %(installdir)s/"]

sanity_check_paths = {
'files': ['bin/aims.x'],
'dirs': [],
}

sanity_check_commands = [
'aims.x --version &> /dev/null'
]

moduleclass = 'chem'
60 changes: 60 additions & 0 deletions easybuild/easyconfigs/f/FHI-aims/FHI-aims-240920_2-intel-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# 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
# J. Sassmannshausen (Imperial College London/UK)
##

easyblock = 'CMakeMake'

name = 'FHI-aims'
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.
"""

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
(https://fhi-aims.org/get-the-code-menu/login).
Access to the FHI-aims club requires a valid license and registration.
Details on available license options and how to register to access
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']

builddependencies = [('CMake', '3.29.3')]

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" '

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/"]

sanity_check_paths = {
'files': ['bin/aims.x'],
'dirs': [],
}

sanity_check_commands = [
'aims.x --version &> /dev/null'
]

moduleclass = 'chem'