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'