Skip to content

[cpeGNU] [package list]

cpeGNU/25.03 (cpeGNU-25.03.eb)

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

EasyConfig:

easyblock = 'CrayPEToolchain'

name =    'cpeGNU'
version = "25.03"

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

whatis = [
    "Desription: EasyBuild toolchain using the Cray compiler wrapper with gcc-native module (CPE release 25.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 25.03.

The module has the same effect as loading PrgEnv-gnu and cpe/25.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.6.0', EXTERNAL_MODULE),
    ('gcc-native/14.2', EXTERNAL_MODULE),
    ('craype/2.7.34', EXTERNAL_MODULE),
    ('cray-mpich/8.1.32', EXTERNAL_MODULE),
    ('cray-libsci/25.03.0', EXTERNAL_MODULE),
    ('cray-dsmml/0.3.1', EXTERNAL_MODULE),
    ('perftools-base/25.03.0', EXTERNAL_MODULE),
    ('xpmem', EXTERNAL_MODULE),
]

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

moduleclass = 'toolchain'

[cpeGNU] [package list]