Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
30d4393
Add initial functionality to schedule test for all EESSI environments…
Mar 12, 2026
ab0e7ce
Make all tests aware that find_modules now returns a module_info obje…
Mar 12, 2026
8f7dad6
Apply suggestion from @casparvl
casparvl Mar 26, 2026
d6d4c5f
Apply suggestion from @casparvl
casparvl Mar 26, 2026
0e3a48a
Fix linter errors
Mar 30, 2026
c63fbe0
Merge remote-tracking branch 'refs/remotes/origin/support_multiple_ee…
Mar 30, 2026
faf21ae
Make sure that if reframe is new enough, we simply use the combinatio…
Apr 2, 2026
8303df6
Fix linting issues
Apr 2, 2026
5d58833
add missing 'if'
casparvl Apr 7, 2026
63c0eab
Use at least three letters for variable assignments
Apr 7, 2026
0112ebe
Make appending to the existing environment the default, so that one c…
Apr 29, 2026
3f4edfa
No longer require that the reframe environment is always called 'defa…
Apr 29, 2026
2a6ddbb
Rely on the common config to set the environs
Apr 29, 2026
67d9506
Resolved merge conflict when mergin https://github.com/EESSI/test-sui…
May 5, 2026
8e0dd27
Merge branch 'main' into support_multiple_eessi_environments
May 6, 2026
53ff8c9
use our own find_modules function with caching
May 11, 2026
401ef40
Replace module_name by module_info
May 13, 2026
ced4ccb
add logging
May 14, 2026
5fe2f46
make sure espresso uses the new module_info parameter instead of modu…
May 14, 2026
ba2e0c4
better fix for espresso
May 14, 2026
a11c921
fix lammps
May 14, 2026
428aedd
update BLAS test to work with module_info parameters
May 16, 2026
15eee6d
fix
May 16, 2026
d6aa6ca
also fix imkl modules for BLAS test
May 23, 2026
092cedf
Stop using common_eessi_init
Jun 4, 2026
fc43dc9
Merge pull request #5 from smoors/pr326-test2
casparvl Jun 4, 2026
a7cd83c
Update config files: common_eessi_init is no longer relevant now that…
Jun 4, 2026
f69e1f1
Merge remote-tracking branch 'refs/remotes/origin/support_multiple_ee…
Jun 4, 2026
2ed4420
this import is no longer used
Jun 4, 2026
baa4e87
update hortense config file
Jun 6, 2026
4698f11
update
Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/pip_install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@

- name: Install ReFrame
run: |
python -m pip install --user reframe-hpc
python -m pip install --user reframe-hpc==4.9.3

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 2: pipCommand not pinned by hash
Click Remediation section below to solve this issue
# remove hpctestlib directory, which is automatically installed with reframe-hpc
pip show reframe-hpc | grep Location | cut -d ' ' -f 2 | xargs -I {} rm -r {}/hpctestlib
pip show reframe-hpc | grep Location | cut -d ' ' -f 2 | xargs -I {} rm -rf {}/hpctestlib

- name: Install EESSI test suite with 'pip install'
run: |
Expand Down
6 changes: 4 additions & 2 deletions config/aws_mc.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
set_common_required_config)
from eessi.testsuite.constants import EXTRAS, FEATURES, SCALES

Expand Down Expand Up @@ -112,7 +112,9 @@
FEATURES.CPU
] + list(SCALES.keys()),
'prepare_cmds': [
common_eessi_init(),
# This system doesn't have an lmod installation by default, so source one from EESSI
'source /cvmfs/software.eessi.io/2025.06/init/lmod/bash',
'module unload EESSI',
# Required when using srun as launcher with --export=NONE in partition access, in order to ensure job
# steps inherit environment. It doesn't hurt to define this even if srun is not used
'export SLURM_EXPORT_ENV=ALL'
Expand Down
4 changes: 1 addition & 3 deletions config/bsc_marenostrum5.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
get_sbatch_account, set_common_required_config)
from eessi.testsuite.constants import DEVICE_TYPES, EXTRAS, FEATURES, GPU_VENDORS, SCALES

Expand Down Expand Up @@ -30,7 +30,6 @@
'env_vars': [],
'prepare_cmds': [
"module unuse /apps/GPP/modulefiles/applications",
common_eessi_init(),
'export OMPI_MCA_pml=ucx',
# Work around "Failed to modify UD QP to INIT on mlx5_0: Operation not permitted" issue
# until we can resolve this through an LMOD hook in host_injections.
Expand Down Expand Up @@ -60,7 +59,6 @@
'env_vars': [],
'prepare_cmds': [
"module unuse /apps/GPP/modulefiles/applications",
common_eessi_init(),
'export OMPI_MCA_pml=ucx',
# Work around "Failed to modify UD QP to INIT on mlx5_0: Operation not permitted" issue
# until we can resolve this through an LMOD hook in host_injections.
Expand Down
1 change: 0 additions & 1 deletion config/github_actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
'name': 'default',
'scheduler': 'local',
'launcher': 'local',
'environs': ['default'],
'features': [FEATURES.CPU] + list(SCALES.keys()),
'processor': {
'num_cpus': 2,
Expand Down
4 changes: 1 addition & 3 deletions config/it4i_karolina.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
get_sbatch_account, set_common_required_config)
from eessi.testsuite.constants import EXTRAS, FEATURES, SCALES

Expand All @@ -42,7 +42,6 @@
'name': 'qcpu',
'scheduler': 'slurm',
'prepare_cmds': [
common_eessi_init(),
# Pass job environment variables like $PATH, etc., into job steps
'export SLURM_EXPORT_ENV=ALL',
# Needed when using srun launcher
Expand Down Expand Up @@ -77,7 +76,6 @@
# 'name': 'qgpu',
# 'scheduler': 'slurm',
# 'prepare_cmds': [
# common_eessi_init(),
# # Pass job environment variables like $PATH, etc., into job steps
# 'export SLURM_EXPORT_ENV=ALL',
# # Needed when using srun launcher
Expand Down
4 changes: 1 addition & 3 deletions config/izum_vega.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
set_common_required_config)
from eessi.testsuite.constants import EXTRAS, DEVICE_TYPES, FEATURES, GPU_VENDORS, SCALES

Expand All @@ -37,7 +37,6 @@
'name': 'cpu',
'scheduler': 'slurm',
'prepare_cmds': [
common_eessi_init(),
# Pass job environment variables like $PATH, etc., into job steps
'export SLURM_EXPORT_ENV=ALL',
# Needed when using srun launcher
Expand Down Expand Up @@ -66,7 +65,6 @@
'name': 'gpu',
'scheduler': 'slurm',
'prepare_cmds': [
common_eessi_init(),
# Pass job environment variables like $PATH, etc., into job steps
'export SLURM_EXPORT_ENV=ALL',
# Needed when using srun launcher
Expand Down
3 changes: 1 addition & 2 deletions config/macc_deucalion.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
set_common_required_config)
from eessi.testsuite.constants import EXTRAS, FEATURES, SCALES

Expand All @@ -26,7 +26,6 @@
# bypass CPU autodetection for now aarch64/a64fx,
# see https://github.com/EESSI/software-layer/pull/608
'export EESSI_SOFTWARE_SUBDIR_OVERRIDE=aarch64/a64fx',
common_eessi_init(),
# Pass job environment variables like $PATH, etc., into job steps
'export SLURM_EXPORT_ENV=HOME,PATH,LD_LIBRARY_PATH,PYTHONPATH',
],
Expand Down
7 changes: 6 additions & 1 deletion config/settings_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,12 @@
'launcher': 'mpirun',
'access': ['-p cpu', '--export=None'],
'prepare_cmds': [
common_eessi_init(),
# If your system doesn't have an Lmod installation by default on the batch nodes
# Uncommenting the following two lines will use one from EESSI. Note that it is up to you
# to pick a version for EESSI from which you'd like to use the lmod installation - it's
# hard-coded to 2025.06 here.
# 'source /cvmfs/software.eessi.io/2025.06/init/lmod/bash',
# 'module unload EESSI',
# Pass job environment variables like $PATH, etc., into job steps
'export SLURM_EXPORT_ENV=ALL',
],
Expand Down
11 changes: 1 addition & 10 deletions config/surf_snellius.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
set_common_required_config)
from eessi.testsuite.constants import EXTRAS, DEVICE_TYPES, FEATURES, GPU_VENDORS, SCALES

Expand All @@ -42,7 +42,6 @@
{
'name': 'rome',
'scheduler': 'slurm',
'prepare_cmds': [common_eessi_init()],
'launcher': 'mpirun',
'access': ['-p rome', '--export=None'],
'max_jobs': 120,
Expand All @@ -59,12 +58,6 @@
{
'name': 'genoa',
'scheduler': 'slurm',
'prepare_cmds': [
# EESSI init script (for now) falls back to zen3, since the zen4 is incomplete
# But, we want to really test the zen4 branch on these nodes
'export EESSI_SOFTWARE_SUBDIR_OVERRIDE=x86_64/amd/zen4',
common_eessi_init()
],
'launcher': 'mpirun',
'access': ['-p genoa', '--export=None'],
'max_jobs': 120,
Expand All @@ -81,7 +74,6 @@
{
'name': 'gpu_A100',
'scheduler': 'slurm',
'prepare_cmds': [common_eessi_init()],
'launcher': 'mpirun',
'access': ['-p gpu_a100', '--export=None'],
'max_jobs': 60,
Expand All @@ -106,7 +98,6 @@
{
'name': 'gpu_H100',
'scheduler': 'slurm',
'prepare_cmds': [common_eessi_init()],
'launcher': 'mpirun',
'access': ['-p gpu_h100', '--export=None'],
'max_jobs': 60,
Expand Down
27 changes: 16 additions & 11 deletions config/vsc_hortense.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
# ```
import os

from eessi.testsuite.common_config import (common_eessi_init, common_general_config, common_logging_config,
from eessi.testsuite.common_config import (common_general_config, common_logging_config,
get_sbatch_account, set_common_required_config)
from eessi.testsuite.constants import EXTRAS, DEVICE_TYPES, FEATURES, GPU_VENDORS, SCALES

hortense_access = ['--export=NONE', '--get-user-env=60L']
hortense_access = ['--export=NONE', '--get-user-env']

# Note that we rely on the SBATCH_ACCOUNT environment variable to be specified
# From ReFrame 4.8.1 we can no longer rely on SBATCH_ACCOUNT completely
Expand All @@ -46,9 +46,10 @@
post_init = 'unset SLURM_EXPORT_ENV'
launcher = "mpirun"

eessi_cvmfs_repo = os.getenv('EESSI_CVMFS_REPO', None)
if eessi_cvmfs_repo is not None:
prepare_eessi_init = "module --force purge"
eessi_modulepath = '/cvmfs/software.eessi.io/init/modules'
modulepaths = os.getenv('MODULEPATH', '').split(':')
if eessi_modulepath in modulepaths:
prepare_eessi_init = f"module --force purge && module use {eessi_modulepath}"
mpi_module = "env/vsc/dodrio/{}"
else:
prepare_eessi_init = ""
Expand All @@ -70,7 +71,6 @@
'scheduler': 'slurm',
'prepare_cmds': [
prepare_eessi_init,
common_eessi_init(),
post_init,
],
'access': hortense_access + ['--partition=cpu_rome_rhel9'],
Expand All @@ -81,6 +81,7 @@
'descr': 'CPU nodes (AMD Rome, 256GiB RAM)',
'max_jobs': 20,
'launcher': launcher,
'environs': ['default'],
'modules': [mpi_module.format('cpu_rome_rhel9')],
'features': [
FEATURES.CPU,
Expand All @@ -96,7 +97,6 @@
'scheduler': 'slurm',
'prepare_cmds': [
prepare_eessi_init,
common_eessi_init(),
post_init,
],
'access': hortense_access + ['--partition=cpu_rome_512_rhel9'],
Expand All @@ -107,6 +107,7 @@
'descr': 'CPU nodes (AMD Rome, 512GiB RAM)',
'max_jobs': 20,
'launcher': launcher,
'environs': ['default'],
'modules': [mpi_module.format('cpu_rome_512_rhel9')],
'features': [
FEATURES.CPU,
Expand All @@ -122,7 +123,6 @@
'scheduler': 'slurm',
'prepare_cmds': [
prepare_eessi_init,
common_eessi_init(),
post_init,
],
'access': hortense_access + ['--partition=cpu_milan_rhel9'],
Expand All @@ -133,6 +133,7 @@
'descr': 'CPU nodes (AMD Milan, 256GiB RAM)',
'max_jobs': 20,
'launcher': launcher,
'environs': ['default'],
'modules': [mpi_module.format('cpu_milan_rhel9')],
'features': [
FEATURES.CPU,
Expand All @@ -148,7 +149,6 @@
'scheduler': 'slurm',
'prepare_cmds': [
prepare_eessi_init,
common_eessi_init(),
post_init,
],
'access': hortense_access + ['--partition=gpu_rome_a100_40'],
Expand All @@ -159,6 +159,7 @@
'descr': 'GPU nodes (A100 40GB)',
'max_jobs': 20,
'launcher': launcher,
'environs': ['default'],
'modules': [mpi_module.format('gpu_rome_a100_40')],
'features': [
FEATURES.GPU,
Expand All @@ -182,7 +183,6 @@
'scheduler': 'slurm',
'prepare_cmds': [
prepare_eessi_init,
common_eessi_init(),
post_init,
],
'access': hortense_access + ['--partition=gpu_rome_a100_80'],
Expand All @@ -193,6 +193,7 @@
'descr': 'GPU nodes (A100 80GB)',
'max_jobs': 20,
'launcher': launcher,
'environs': ['default'],
'modules': [mpi_module.format('gpu_rome_a100_80')],
'features': [
FEATURES.GPU,
Expand All @@ -214,11 +215,15 @@
]
},
],
'environments': [
{
'name': 'default',
},
],
'general': [
{
'remote_detect': True,
'purge_environment': True,
'resolve_module_conflicts': False, # avoid loading the module before submitting the job
**common_general_config()
}
],
Expand Down
Loading
Loading