Skip to content

[COSMA] [package list]

COSMA/2.6.6-cpeGNU-23.09-GPU (COSMA-2.6.6-cpeGNU-23.09-GPU.eb)

Install with the EasyBuild-user module:

eb COSMA-2.6.6-cpeGNU-23.09-GPU.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider COSMA/2.6.6-cpeGNU-23.09-GPU.

EasyConfig:

# contributed by Peter Larsson (LUST)
# Bump to the latest version and CPE version by Radim Janalik (CSCS)

easyblock = 'CMakeMake'

name =    'COSMA'
version = '2.6.6'
versionsuffix = '-GPU'

homepage = 'https://github.com/eth-cscs/COSMA'

whatis = [
    "Description: COSMA is a parallel, high-performance, GPU-accelerated, matrix-matrix multiplication algorithm that is communication-optimal."
]

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

docurls = [
    'Manual: https://github.com/eth-cscs/COSMA'
]

toolchain = {'name': 'cpeGNU', 'version': '23.09'}
toolchainopts = {'opt': True}

sources =     [{
    'filename': SOURCELOWER_TAR_GZ,
    'git_config': {
        'url': 'https://github.com/eth-cscs',
        'repo_name':'%(name)s',
        'tag' :'v2.6.6',
        'recursive': True,
        'keep_git_dir' : True, },
}]

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True), # For CMake
    ('bzip2',      '1.0.8'),
]

prebuildopts = 'module load craype-accel-amd-gfx90a && module load rocm/5.6.1 &&'
parallel = 16

configopts = [
    " -DCOSMA_BLAS=ROCM -DCOSMA_SCALAPACK=CRAY_LIBSCI -DCOSMA_WITH_TESTS=NO -DCOSMA_WITH_BENCHMARKS=NO -DCMAKE_CXX_COMPILER=CC -DCOSMA_WITH_APPS=NO -DCOSMA_WITH_PROFILING=NO -DBUILD_SHARED_LIBS=NO -DCOSMA_WITH_GPU_AWARE_MPI=ON ",
]

sanity_check_paths = {
    'files': ['lib64/libcosma.a', 'lib64/libcosta.a'],
    'dirs':  ['lib64'],
}

moduleclass = 'math'

[COSMA] [package list]