cpeAMD/23.09 (cpeAMD-23.09.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider cpeAMD/23.09.
EasyConfig:
easyblock = 'CrayPEToolchain'
name = 'cpeAMD'
version = "23.09"
homepage = 'https://pubs.cray.com'
whatis = [
"Desription: EasyBuild toolchain using the Cray compiler wrapper with amd module (CPE release 23.09)"
]
description = """
This module is the EasyBuild toolchain that uses the Cray compiler wrapper with
the amd compiler activated. The components loaded are those of the Cray Programming
Environment (CPE) version 23.09.
The module has the same effect as loading PrgEnv-amd and cpe/23.09 should have, but
does not use either of those modules. The use of PrgEnv-amd 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-amd,
ensuring that the Cray PE will work as if those modules are loaded.
"""
toolchain = SYSTEM
PrgEnv_load = False
PrgEnv_family = 'PrgEnv'
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 = [
('amd/6.0.3', EXTERNAL_MODULE),
('craype/2.7.23', EXTERNAL_MODULE),
('cray-mpich/8.1.27', EXTERNAL_MODULE),
('cray-libsci/23.09.1.1', EXTERNAL_MODULE),
('cray-dsmml/0.2.2', EXTERNAL_MODULE),
('perftools-base/23.09.0', EXTERNAL_MODULE),
('xpmem', EXTERNAL_MODULE),
]
if local_partition == 'G' or local_partition == 'EAP':
dependencies.insert( 0, ('rocm/6.0.3', EXTERNAL_MODULE) )
moduleclass = 'toolchain'