Skip to content

[METIS] [package list]

METIS/5.1.0-cpeAMD-25.03-idx32-fp32 (METIS-5.1.0-cpeAMD-25.03-idx32-fp32.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider METIS/5.1.0-cpeAMD-25.03-idx32-fp32.

EasyConfig:

# Adapted by Kurt Lust (Kurt.Lust@uantwerpen.be) from recipes in
# the EasyBuild and CSCS repository, for the LUMI consortium.
local_METIS_version =        '5.1.0'         # https:/http://glaros.dtc.umn.edu/gkhome/metis/metis/download

local_idxtypewidth =  32
local_realtypewidth = 32

name =         'METIS'
version =      local_METIS_version
versionsuffix =f'-idx{local_idxtypewidth}-fp{local_realtypewidth}'


homepage = 'https://karypis.github.io/glaros/software/metis/overview.html'

whatis = [
    'Description: METIS - Serial Graph Partitioning and Fill-reducing Matrix Ordering'
]

description = f"""
METIS is a set of serial programs for partitioning graphs, partitioning finite
element meshes, and producing fill reducing orderings for sparse matrices. The
algorithms implemented in METIS are based on the multilevel recursive-bisection,
multilevel k-way, and multi-constraint partitioning schemes.

This version was compiled with {local_idxtypewidth}-bit indices and {local_realtypewidth}-bit reals.

METIS is distributed under the Apache License Version 2.0.
"""

software_license_urls = [
    'http://www.apache.org/licenses/LICENSE-2.0',
    'https://github.com/KarypisLab/METIS/blob/master/LICENSE',
]


toolchain = {'name': 'cpeAMD', 'version': '25.03'}
toolchainopts = {'optarch': True, 'pic': True}

source_urls = [
    'https://karypis.github.io/glaros/files/sw/metis',
    'https://karypis.github.io/glaros/files/sw/metis/OLD',
]
sources = [SOURCELOWER_TAR_GZ]
checksums = [
    '76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2', # metis-5.1.0.tar.gz
]

builddependencies = [ # Create a reproducible build environment.
    ('buildtools',   '%(toolchain_version)s',   '', True), # For CMake
]

# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts
preinstallopts = preconfigopts

# Note that the configure step simply runs in the source directory.
preconfigopts += ( f'pwd && sed -e \'s|^#define[[:space:]]*IDXTYPEWIDTH.*|#define IDXTYPEWIDTH {local_idxtypewidth}|\' '
                      f'-e \'s|^#define[[:space:]]*REALTYPEWIDTH.*|#define REALTYPEWIDTH {local_realtypewidth}|\' '
                      '-i include/metis.h && ' ) 

configopts = [
    '', 
    'shared=1'
]

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp Changelog LICENSE.txt %(installdir)s/share/licenses/%(name)s',   
]

moduleclass = 'math'

[METIS] [package list]