[OSU-Micro-Benchmarks] [package list]
OSU-Micro-Benchmarks/7.3-cpeGNU-23.09-OpenMPI-4.1.6-noCrayWrappers (OSU-Micro-Benchmarks-7.3-cpeGNU-23.09-OpenMPI-4.1.6-noCrayWrappers.eb)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider OSU-Micro-Benchmarks/7.3-cpeGNU-23.09-OpenMPI-4.1.6-noCrayWrappers
.
EasyConfig:
easyblock = 'ConfigureMake'
local_OpenMPI_version = '4.1.6'
local_lumi_CPEtools_version = '1.1'
name = 'OSU-Micro-Benchmarks'
version = '7.3'
versionsuffix = f'-OpenMPI-{local_OpenMPI_version}-noCrayWrappers'
homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/'
whatis = [
"Description: OSU Micro-Benchmarks"
]
description = f"""
OSU Micro-Benchmarks from the MVAPICH project.
This module only includes the full suite of C MPI benchmarks.
Its main use is as a testing tool for our Open MPI EasyConfigs. It is made
available to users also so that they can adapt it together with the OpenMPI
module should they want to build a different version. This module in
particular is for testing OpenMPI/{local_OpenMPI_version}-%(toolchain_name)s-%(toolchain_version)s-noCrayWrappers.
"""
usage = f"""
Some example job scripts for testing are available after loading the module in
$OSU_EXAMPLES. Note that these test scripts not only need the matching
OpenMPI module which EasyBuild will build automatically as a dependency of
this module, but also the matching lumi-CPEtools module
lumi-CPEtools/{local_lumi_CPEtools_version}-%(toolchain_name)s-%(toolchain_version)s{versionsuffix} which is
not build automatically but can be generated from the EasyConfig
lumi-CPEtools-{local_lumi_CPEtools_version}-%(toolchain_name)s-%(toolchain_version)s{versionsuffix}.eb.
You'll have to add an account via the `sbatch` command line, and may want to
overwrite other #SBATCH parameters also.
"""
# We're abusing the toolchain here as we really only need the gcc module and
# would be better served with simply a different toolchain, but we don't have
# a gcc module built the way EasyBuild likes it.
toolchain = {'name': 'cpeGNU', 'version': '23.09'}
toolchainopts = {'usempi': True}
sources = [
{
'filename': SOURCELOWER_TAR_GZ,
'source_urls': ['https://mvapich.cse.ohio-state.edu/download/mvapich/']
},
{ 'filename': 'OSU-p2p-template.sh' },
{ 'filename': 'OSU-coll-template.sh' },
{ 'filename': 'OSU-1sided-template.sh' },
]
checksums = [
'8fa25b8aaa34e4b07ab3a4f30b7690ab46b038b08d204a853a9b6aa7bdb02f2f'
]
builddependencies = [
('buildtools', '%(toolchain_version)s', '', SYSTEM), # For make
]
dependencies = [
('OpenMPI', local_OpenMPI_version, '-noCrayWrappers'),
]
preconfigopts = 'module unload cray-libsci cray-mpich craype && '
configopts = 'CC=$EBROOTOPENMPI/bin/mpicc CXX=$EBROOTOPENMPI/bin/mpicxx'
prebuildopts = 'module unload cray-libsci cray-mpich craype && '
preinstallopts = 'module unload cray-libsci cray-mpich craype && '
local_cleanup = '\\nmodule unload cray-libsci cray-mpich craype'
local_sed_args = '-e \'s/%toolchainversion%/%(toolchain_version)s/\' '
local_sed_args += '-e \'s/%toolchain%/%(toolchain_name)s/\' '
local_sed_args += f'-e \'s/%suffix%/{versionsuffix}/\' '
local_sed_args += f'-e \'s/%OSUversion%/{version}/\' '
local_sed_args += f'-e \'s/%CPEtoolsversion%/{local_lumi_CPEtools_version}/\' '
local_sed_args += f'-e\'s/%cleanup%/{local_cleanup}/\''
postinstallcmds = [
'mkdir -p %(installdir)s/examples',
f'sed {local_sed_args} ../OSU-p2p-template.sh >%(installdir)s/examples/OSU-p2p-slurm.sh',
f'sed {local_sed_args} ../OSU-coll-template.sh >%(installdir)s/examples/OSU-coll-slurm.sh',
f'sed {local_sed_args} ../OSU-1sided-template.sh >%(installdir)s/examples/OSU-1sided-slurm.sh',
'mkdir -p %(installdir)s/share/licenses/%(name)s && cp COPYRIGHT README CHANGES %(installdir)s/share/licenses/%(name)s'
]
local_benchmark_dirs = [
'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup']
]
modextrapaths = {
'PATH': local_benchmark_dirs
}
modextravars = {
'OSU_EXAMPLES': '%(installdir)s/examples',
}
sanity_check_paths = {
'files': [],
'dirs': local_benchmark_dirs,
}
moduleclass = 'perf'