Skip to content

[cpeGNU] [package list]

cpeGNU/26.03 (cpeGNU-26.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider cpeGNU/26.03.

EasyConfig:

easyblock = 'CrayPEToolchain'

name =    'cpeGNU'
version = "26.03"

homepage = 'https://pubs.cray.com'

whatis = [
    "Desription: EasyBuild toolchain using the Cray compiler wrapper with gcc-native module (CPE release 26.03)"
]

description = """
This module is the EasyBuild toolchain that uses the Cray compiler wrapper with
the gcc-native compiler activated. The components loaded are those of the Cray Programming
Environment (CPE) version 26.03.

The module has the same effect as loading PrgEnv-gnu and cpe/26.03 should have, but
does not use either of those modules. The use of PrgEnv-gnu is avoided since the
modules that it loads may change over time, reducing reproducibility, while loading
cpe/21.04 is avoided as this module is buggy and conflicts with the way the LUMI
software stack currently works. Instead, the module declares itself a member of
the PrgEnv family and sets an PE_ENV which would otherwise be set by PrgEnv-gnu,
ensuring that the Cray PE will work as if those modules are loaded.
"""

toolchain = SYSTEM

PrgEnv_load   = True
PrgEnv_family = 'cpeToolchain'
CPE_load      = None

import os
local_partition = os.getenv('LUMI_STACK_PARTITION')

if local_partition == 'common' or local_partition == 'L':
    cray_targets = [
        'craype-x86-rome',
        'craype-accel-host',
        'craype-network-ofi'
    ]
elif local_partition == 'C':
    cray_targets = [
        'craype-x86-milan',
        'craype-accel-host',
        'craype-network-ofi'
    ]
elif local_partition == 'G':
    cray_targets = [
        'craype-x86-trento',
        'craype-accel-amd-gfx90a',
        'craype-network-ofi'
    ]
elif local_partition == 'EAP':
    cray_targets = [
        'craype-x86-rome',
        'craype-accel-amd-gfx908',
        'craype-network-ofi'
    ]
elif local_partition == 'D':
    cray_targets = [
        'craype-x86-rome',
        # 'craype-accel-nvidia80', # It appears we can only load this module after loading cudatoolkit or nvhpc
        'craype-accel-host',
        'craype-network-ofi'
    ]

dependencies = [
    ('PrgEnv-gnu/8.7.0', EXTERNAL_MODULE),
    ('gcc-native/14', EXTERNAL_MODULE),
    ('craype/2.7.36', EXTERNAL_MODULE),
    ('cray-mpich/9.1.0', EXTERNAL_MODULE),
    ('cray-libsci/26.03.0', EXTERNAL_MODULE),
    ('cray-dsmml/0.3.1', EXTERNAL_MODULE),
    ('perftools-base/26.03.0', EXTERNAL_MODULE),
    ('xpmem', EXTERNAL_MODULE),
]

if local_partition == 'G' or local_partition == 'EAP':
    dependencies.insert( 0, ('rocm/7.0.3', EXTERNAL_MODULE) )

moduleclass = 'toolchain'

[cpeGNU] [package list]