new file: l/libxc/libxc-5.1.2-intel-2022a.eb

modified:   o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb
	new file:   o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb.1
	new file:   q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw-GPU.eb
	new file:   q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw.eb
	modified:   w/WIEN2k/WIEN2k-23.2-intel-2022a.eb
This commit is contained in:
Lukas Krupcik 2023-04-24 13:48:23 +02:00
parent 43cea70b52
commit 73860e9992
6 changed files with 257 additions and 22 deletions

View File

@ -0,0 +1,48 @@
# IT4Innovations
# lk 2023
easyblock = 'CMakeMake'
name = 'libxc'
version = '5.1.2'
homepage = 'https://www.tddft.org/programs/libxc'
description = """Libxc is a library of exchange-correlation functionals for density-functional theory.
The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals."""
toolchain = {'name': 'intel', 'version': '2022a'}
source_urls = ['https://www.tddft.org/programs/libxc/down.php?file=%(version)s/']
sources = [SOURCE_TAR_GZ]
checksums = ['180d52b5552921d1fac8a10869dd30708c0fb41dc202a3bbee0e36f43872718a']
builddependencies = [
('CMake', '3.23.1'),
('Perl', '5.34.1'),
]
separate_build_dir = True
local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_FORTRAN03=ON -DENABLE_XHOST=OFF"
# perform iterative build to get both static and shared libraries
configopts = [
local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF',
local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
]
parallel = 1
# make sure that built libraries (libxc*.so*) in build directory are picked when running tests
# this is required when RPATH linking is used
pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && "
#runtest = 'test'
sanity_check_paths = {
'files': ['bin/xc-info'] +
['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]],
'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'],
}
moduleclass = 'chem'

View File

@ -1,5 +1,5 @@
# IT4Innovations 2023
# JK
# IT4Innovations
# LK 2023
name = 'OpenMPI'
version = '4.1.4'
@ -105,7 +105,4 @@ else:
'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
}
moduleclass = 'mpi'

View File

@ -0,0 +1,65 @@
name = 'OpenMPI'
version = '4.1.4'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '22.7-CUDA-11.7.0'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_BZ2]
patches = [
'OpenMPI-4.1.1_build-with-internal-cuda-header.patch',
'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch',
]
checksums = [
'92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d', # openmpi-4.1.4.tar.bz2
# OpenMPI-4.1.1_build-with-internal-cuda-header.patch
'63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83',
# OpenMPI-4.1.1_opal-datatype-cuda-performance.patch
'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e',
]
builddependencies = [
('pkgconf', '1.8.0'),
('Perl', '5.34.1'),
('Autotools', '20220317'),
]
dependencies = [
('zlib', '1.2.12'),
('hwloc', '2.7.1'),
('libevent', '2.1.12'),
('UCX', '1.12.1'),
('UCX-CUDA', '1.12.1', '-CUDA-%(cudaver)s'),
('libfabric', '1.15.1'),
('PMIx', '4.1.2'),
('UCC', '1.0.0'),
('UCC-CUDA', '1.0.0', '-CUDA-%(cudaver)s'),
]
# Update configure to include changes from the "internal-cuda" patch
# by running a subset of autogen.pl sufficient to achieve this
# without doing the full, long-running regeneration.
preconfigopts = ' && '.join([
'cd config',
'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh',
'cd ..',
'autoconf',
'autoheader',
'aclocal',
'automake',
''
])
# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted.
configopts = '--with-cuda=internal '
configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran'
# disable MPI1 compatibility for now, see what breaks...
# configopts += '--enable-mpi1-compatibility '
# to enable SLURM integration (site-specific)
# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr'
moduleclass = 'mpi'

View File

@ -0,0 +1,67 @@
# IT4Innovations
# # LK 2023
name = 'QuantumESPRESSO'
version = '7.1'
versionsuffix = '-thermo_pw-GPU'
homepage = 'https://www.quantum-espresso.org'
description = """Quantum ESPRESSO is an integrated suite of computer codes
for electronic-structure calculations and materials modeling at the nanoscale.
It is based on density-functional theory, plane waves, and pseudopotentials
(both norm-conserving and ultrasoft).
"""
toolchain = {'name': 'intel', 'version': '2022a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': True, 'openmp': True, 'optarch': 'march=core-avx2', 'opt': 'O3'}
else:
toolchainopts = {'usempi': True, 'openmp': True, 'opt': 'O3'}
source_urls = [
'https://gitlab.com/QEF/q-e/-/archive/qe-%(version)s',
]
sources = [
{
'filename': 'q-e-qe-%(version)s.tar.gz',
'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_',
},
{
'filename': 'qe-gipaw-%(version)s.tar.gz',
'source_urls': ['https://github.com/dceresoli/qe-gipaw/releases/download/%(version)s/']
},
{'filename': 'wannier90-3.1.0.tar.gz', 'download_filename': 'v3.1.0.tar.gz',
'source_urls': ['https://github.com/wannier-developers/wannier90/archive/']
},
{
'filename': 'thermo_pw.1.7.1.tar.gz',
'source_urls': ['https://github.com/dalcorso/thermo_pw/releases/download/1.7.1/'],
'extract_cmd': 'cd %(builddir)s/qe-%(version)s && tar xzvf %s && cd thermo_pw && make join_qe',
},
]
checksums = [
'd56dea096635808843bd5a9be2dee3d1f60407c01dbeeda03f8256a3bcfc4eb6', # q-e-qe-7.1.tar.gz
'0eee3f613d249ff14e8b891493fe68a3567188575ec7397a8fbe3a97cbf6cb69', # qe-gipaw-7.1.tar.gz
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'a4fe924ac9306db4608156942af9334679b3c402c70ba82e3f024ce5677d3af0', # thermo_pw.1.7.1.tar.gz
]
builddependencies = [('M4', '1.4.19')]
dependencies = [
('HDF5', '1.12.2'),
('ELPA', '2021.11.001'),
('libxc', '5.2.3'),
('CUDA', '12.0.0', '', True)
]
# The third party packages should be installed separately and added as
# dependencies. The exception is w90, which is force built, and gipaw
# which depends on qe source
buildopts = 'all gwl xspectra couple epw gipaw w90 thermo_pw'
# parallel build tends to fail
parallel = 1
moduleclass = 'chem'

View File

@ -0,0 +1,66 @@
# IT4Innovations
# # LK 2023
name = 'QuantumESPRESSO'
version = '7.1'
versionsuffix = '-thermo_pw'
homepage = 'https://www.quantum-espresso.org'
description = """Quantum ESPRESSO is an integrated suite of computer codes
for electronic-structure calculations and materials modeling at the nanoscale.
It is based on density-functional theory, plane waves, and pseudopotentials
(both norm-conserving and ultrasoft).
"""
toolchain = {'name': 'intel', 'version': '2022a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': True, 'openmp': True, 'optarch': 'march=core-avx2', 'opt': 'O3'}
else:
toolchainopts = {'usempi': True, 'openmp': True, 'opt': 'O3'}
source_urls = [
'https://gitlab.com/QEF/q-e/-/archive/qe-%(version)s',
]
sources = [
{
'filename': 'q-e-qe-%(version)s.tar.gz',
'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_',
},
{
'filename': 'qe-gipaw-%(version)s.tar.gz',
'source_urls': ['https://github.com/dceresoli/qe-gipaw/releases/download/%(version)s/']
},
{'filename': 'wannier90-3.1.0.tar.gz', 'download_filename': 'v3.1.0.tar.gz',
'source_urls': ['https://github.com/wannier-developers/wannier90/archive/']
},
{
'filename': 'thermo_pw.1.7.1.tar.gz',
'source_urls': ['https://github.com/dalcorso/thermo_pw/releases/download/1.7.1/'],
'extract_cmd': 'cd %(builddir)s/qe-%(version)s && tar xzvf %s && cd thermo_pw && make join_qe',
},
]
checksums = [
'd56dea096635808843bd5a9be2dee3d1f60407c01dbeeda03f8256a3bcfc4eb6', # q-e-qe-7.1.tar.gz
'0eee3f613d249ff14e8b891493fe68a3567188575ec7397a8fbe3a97cbf6cb69', # qe-gipaw-7.1.tar.gz
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'a4fe924ac9306db4608156942af9334679b3c402c70ba82e3f024ce5677d3af0', # thermo_pw.1.7.1.tar.gz
]
builddependencies = [('M4', '1.4.19')]
dependencies = [
('HDF5', '1.12.2'),
('ELPA', '2021.11.001'),
('libxc', '5.2.3'),
]
# The third party packages should be installed separately and added as
# dependencies. The exception is w90, which is force built, and gipaw
# which depends on qe source
buildopts = 'all gwl xspectra couple epw gipaw w90 thermo_pw'
# parallel build tends to fail
parallel = 1
moduleclass = 'chem'

View File

@ -1,5 +1,5 @@
# IT4Innovations 2023
# JK
# IT4Innovations
# LK 2023
name = 'WIEN2k'
version = '23.2'
@ -11,15 +11,21 @@ using density functional theory (DFT). It is based on the full-potential (linear
WIEN2k is an all-electron scheme including relativistic effects and has many features."""
toolchain = {'name': 'intel', 'version': '2022a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2', 'pic': True}
else:
toolchainopts = {'usempi': True, 'pic': True}
sources = ['%(name)s_%(version)s.tar']
patches = [
'WIEN2k-21.1_fix_libxc_for_lapw0_mpi.patch',
# '%(name)s-%(version)s_fix_system_stderr_redirection.patch',
# 'WIEN2k-21.1_fix_system_stderr_redirection.patch',
]
checksums = [
{'WIEN2k_23.2.tar': '8ae0dda4b6d960c37f359b3d4198dd3953058efe2eae94083e91ddd619392cce'},
{'WIEN2k-21.1_fix_libxc_for_lapw0_mpi.patch': '1cc480a4824d9185ad5918dfc68c47bcb7826114626c8133d573be901bbdca84'},
{'WIEN2k-21.1_fix_system_stderr_redirection.patch': 'cdba467b0b6f2b310c2e1e2a3e6cabe75f8fd15ee0f7c14f8ef80c7e48073bdd'},
]
dependencies = [
@ -54,18 +60,4 @@ fix_perl_shebang_for = [
'bashtime2csh.pl_lapw',
]
tests = [
# test case 1: NaCl
('NaCl', '-b', '-i 3', [r'^:DIS.*0.1', r'^:ENE.*-1248.14']),
# test case 2: TiO2
('TiO2',
'-b -numk 1000 -rkmax 7.5',
'-in1ef -cc 0.00001 -fc 0.5 -i 100',
[
r'^:ENE.*-4018.07',
r'^:FGL001.*\s+[0.]+\s+[0.]+\s+[0.]+\s+total forces',
r'^:FGL002.*15.*total forces',
]),
]
moduleclass = 'chem'