COSMA/2.8.4-cpeGNU-26.03-CPU-shared (COSMA-2.8.4-cpeGNU-26.03-CPU-shared.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 COSMA/2.8.4-cpeGNU-26.03-CPU-shared.
EasyConfig:
# contributed by Peter Larsson (LUST)
# Bump to the latest version and CPE version by Radim Janalik (CSCS)
easyblock = 'CMakeMake'
local_bzip2_version = '1.0.8' # http://www.bzip.org/downloads.html
local_COSMA28_version = '2.8.4' # https://github.com/eth-cscs/COSMA/releases
name = 'COSMA'
version = local_COSMA28_version
version_suffix = '-CPU-shared'
homepage = 'https://github.com/eth-cscs/COSMA'
whatis = [
'Description: COSMA is a communication-optimal, GPU-accelerated, '
'matrix-matrix multiplication algorithm'
]
description = """
COSMA is a parallel, high-performance, GPU-accelerated, matrix-matrix
multiplication algorithm that is communication-optimal for all combinations
of matrix dimensions, number of processors and memory sizes, without the
need for any parameter tuning. The key idea behind COSMA is to first derive
a tight optimal sequential schedule and only then parallelize it, preserving
I/O optimality between processes.
"""
doc_urls = [
'Manual: https://github.com/eth-cscs/COSMA'
]
toolchain = {'name': 'cpeGNU', 'version': '26.03'}
toolchain_opts = {'opt': True}
sources = [{
'filename' : SOURCELOWER_TAR_XZ,
'git_config' : {
'url' : 'https://github.com/eth-cscs',
'repo_name' : '%(name)s',
'tag' : f'v{local_COSMA28_version}',
'recursive' : True,
'keep_git_dir' : True,
},
}]
build_deps = [
('buildtools', '%(toolchain_version)s', '', SYSTEM), # For CMake
('bzip2', local_bzip2_version),
]
local_base_configure_opts = ' '.join([
'-DCMAKE_INSTALL_LIBDIR=lib',
'-DCOSMA_BLAS=CRAY_LIBSCI',
'-DCOSMA_SCALAPACK=CRAY_LIBSCI',
'-DCOSMA_WITH_TESTS=NO',
'-DCOSMA_WITH_BENCHMARKS=NO',
'-DCOSMA_WITH_APPS=NO',
'-DCOSMA_WITH_BENCHMARKS=NO',
])
# Building both shared and static in this version does not work. For the second build,
# libcosta is missing.
configure_opts = [
local_base_configure_opts + ' -DBUILD_SHARED_LIBS=ON',
#local_base_configure_opts + ' -DBUILD_SHARED_LIBS=OFF',
]
post_install_cmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cd ../%(name)s && cp ATTRIBUTIONS.md INSTALL.md LICENSE README.md %(installdir)s/share/licenses/%(name)s',
]
sanity_check_paths = {
'files': [f'lib/libcosma.{SHLIB_EXT}', f'lib/libcosta.{SHLIB_EXT}'],
'dirs': ['include'],
}
env_mod_category = 'math'