From c20c1dafee567c0555b6c635b06694c5b93d8ac4 Mon Sep 17 00:00:00 2001 From: lparisi Date: Mon, 13 Jul 2026 11:43:16 +0100 Subject: [PATCH 01/38] Added gromacs and exaalt tests --- tests/apps/gromacs/gmx_1400k_atoms.py | 11 +++++---- tests/apps/lammps/exaalt.py | 34 ++++++++++++++++----------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/tests/apps/gromacs/gmx_1400k_atoms.py b/tests/apps/gromacs/gmx_1400k_atoms.py index ccad2041..2da37c33 100644 --- a/tests/apps/gromacs/gmx_1400k_atoms.py +++ b/tests/apps/gromacs/gmx_1400k_atoms.py @@ -22,6 +22,7 @@ class Gromacs1400kAtomsBase(GromacsBaseCheck): "archer2-tds:compute": 128, "cirrus:compute": 36, "cirrus:compute-gpu": 40, + "cirrus-ex:compute": 288, }, ) @@ -47,12 +48,12 @@ class Gromacs1400kAtomsBase(GromacsBaseCheck): class GromacsCPUCheck(Gromacs1400kAtomsBase): """Gromacs CPU checks""" - valid_systems = ["archer2:compute", "cirrus:compute"] + valid_systems = ["archer2:compute", "cirrus:compute","cirrus-ex:compute"] modules = ["gromacs"] descr = Gromacs1400kAtomsBase.descr + " -- CPU" n_nodes = 4 - num_tasks = 128 + num_cpus_per_task = 1 env_vars = {"OMP_NUM_THREADS": str(num_cpus_per_task)} reference["archer2:compute"] = {} @@ -62,11 +63,13 @@ class GromacsCPUCheck(Gromacs1400kAtomsBase): reference["archer2:compute"]["performance"] = (24.0, -0.1, None, "ns/day") reference["archer2-tds:compute"]["performance"] = (22.4, -0.1, None, "ns/day") reference["cirrus:compute"]["performance"] = (5.50, -0.1, None, "ns/day") + tags = {"applications", "performance", "small"} + @run_before("run") def setup_resources(self): """sets up number of tasks""" - self.num_tasks_per_node = self.cores.get(self.current_partition.fullname, 1) + self.num_tasks_per_node = self.current_partition.processor.num_cpus self.num_tasks = self.n_nodes * self.num_tasks_per_node @@ -91,7 +94,7 @@ class GromacsGPUCheck(Gromacs1400kAtomsBase): num_cpus_per_tasks = None reference["cirrus:compute-gpu"] = {} reference["cirrus:compute-gpu"]["performance"] = (11.5, -0.05, None, "ns/day") - + @run_after("setup") def setup_gpu_options(self): """sets up different resources for gpu systems""" diff --git a/tests/apps/lammps/exaalt.py b/tests/apps/lammps/exaalt.py index cb80c92f..c997ee38 100644 --- a/tests/apps/lammps/exaalt.py +++ b/tests/apps/lammps/exaalt.py @@ -7,19 +7,17 @@ from lammps_base import BuildLAMMPS, LAMMPSBase - class LAMMPSBaseExaalt(LAMMPSBase): """ReFrame LAMMPS Base class for Exaalt tests""" - - valid_systems = ["archer2:compute"] - stream_binary = fixture(BuildLAMMPS, scope="environment") + num_cpus_per_task = 1 env_vars = {"OMP_NUM_THREADS": str(num_cpus_per_task)} - + modules = ["lammps"] cores = variable( dict, value={ "archer2:compute": 128, + "cirrus-ex:compute" : 288 }, ) @@ -28,8 +26,12 @@ class LAMMPSBaseExaalt(LAMMPSBase): "energy": (-8.7467248, -0.001, 0.001, "kJ/mol"), "performance": (0.007, -0.1, None, "ns/day"), }, + "cirrus-ex:compute": { + "performance": (0.055, -0.15, None, "ns/day"), + }, } + @run_after("init") def setup_nnodes(self): """sets up number of nodes""" @@ -39,7 +41,7 @@ def setup_nnodes(self): @run_after("setup") def set_executable(self): """sets up executable""" - self.executable = os.path.join(self.stream_binary.build_system.builddir, "lmp") + self.executable = "lmp" @run_before("run") def setup_resources(self): @@ -61,24 +63,28 @@ def extract_energy(self): @rfm.simple_test class LAMMPSExaaltSmall(LAMMPSBaseExaalt): """ReFrame LAMMPS small test based on NERSC-10 Exaalt benchmark""" - + + valid_systems = ["archer2:compute","cirrus-ex:compute"] descr = "Small performance test using NERSC-10 Exaalt LAMMPS benchmark reference run" - tags = {"applications", "performance"} + tags = {"applications", "performance","small"} executable_opts = [ "-in in.snap.test", "-var snapdir 2J8_W.SNAP", - "-var nx 256", - "-var ny 256", - "-var nz 256", - "-var nsteps 100", + "-var nx 128", + "-var ny 128", + "-var nz 128", + "-var nsteps 200", ] - n_nodes = 16 + + n_nodes = 4 time_limit = "30m" - @rfm.simple_test class LAMMPSExaaltRef(LAMMPSBaseExaalt): + + valid_systems = ["archer2:compute"] + """ReFrame LAMMPS largescale test based on NERSC-10 Exaalt benchmark""" descr = "Largescale performance test using NERSC-10 Exaalt LAMMPS benchmark reference run" From 3d440051a43374651f1485a8a6133afe040034ef Mon Sep 17 00:00:00 2001 From: lparisi Date: Mon, 13 Jul 2026 16:40:42 +0100 Subject: [PATCH 02/38] Added openfoam benchmark --- tests/apps/openfoam/openfoam_org_cavity3d.py | 63 ++++++++ tests/apps/openfoam/src/cavity_3d/0/U | 41 +++++ tests/apps/openfoam/src/cavity_3d/0/p | 40 +++++ tests/apps/openfoam/src/cavity_3d/README.md | 142 ++++++++++++++++++ .../src/cavity_3d/constant/physicalProperties | 20 +++ .../src/cavity_3d/system/PDRblockMeshDict | 56 +++++++ .../src/cavity_3d/system/blockMeshDict | 65 ++++++++ .../openfoam/src/cavity_3d/system/controlDict | 48 ++++++ .../src/cavity_3d/system/decomposeParDict0128 | 27 ++++ .../src/cavity_3d/system/decomposeParDict0256 | 27 ++++ .../src/cavity_3d/system/decomposeParDict0288 | 27 ++++ .../src/cavity_3d/system/decomposeParDict0576 | 27 ++++ .../src/cavity_3d/system/decomposeParDict1152 | 27 ++++ .../src/cavity_3d/system/decomposeParDict2304 | 27 ++++ .../src/cavity_3d/system/decomposeParDict4608 | 27 ++++ .../openfoam/src/cavity_3d/system/fvSchemes | 50 ++++++ .../openfoam/src/cavity_3d/system/fvSolution | 51 +++++++ 17 files changed, 765 insertions(+) create mode 100644 tests/apps/openfoam/openfoam_org_cavity3d.py create mode 100644 tests/apps/openfoam/src/cavity_3d/0/U create mode 100644 tests/apps/openfoam/src/cavity_3d/0/p create mode 100644 tests/apps/openfoam/src/cavity_3d/README.md create mode 100644 tests/apps/openfoam/src/cavity_3d/constant/physicalProperties create mode 100644 tests/apps/openfoam/src/cavity_3d/system/PDRblockMeshDict create mode 100644 tests/apps/openfoam/src/cavity_3d/system/blockMeshDict create mode 100644 tests/apps/openfoam/src/cavity_3d/system/controlDict create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict0128 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict0256 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict0288 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict0576 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict1152 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict2304 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/decomposeParDict4608 create mode 100644 tests/apps/openfoam/src/cavity_3d/system/fvSchemes create mode 100644 tests/apps/openfoam/src/cavity_3d/system/fvSolution diff --git a/tests/apps/openfoam/openfoam_org_cavity3d.py b/tests/apps/openfoam/openfoam_org_cavity3d.py new file mode 100644 index 00000000..82af928c --- /dev/null +++ b/tests/apps/openfoam/openfoam_org_cavity3d.py @@ -0,0 +1,63 @@ +"""ReFrame test for OpenFOAM 3D lid-driven cavity.""" + +import reframe as rfm +import reframe.utility.sanity as sn + +from openfoam_org_base import OpenFOAMBase + + +class OpenFOAMCavity3DBase(OpenFOAMBase): + """OpenFOAM 3D lid-driven cavity base test.""" + + valid_systems = ["cirrus-ex:compute"] + + num_cpus_per_task = 1 + time_limit = "20m" + + @run_before("run") + def setup_tasks(self): + self.num_tasks_per_node = self.current_partition.processor.num_cpus + self.num_tasks = self.num_nodes * self.num_tasks_per_node + + @sanity_function + def assert_finished(self): + """Check that the solver completed successfully.""" + return sn.all([sn.assert_found("End", self.stdout), sn.assert_found("Finalising parallel run", self.stdout)]) + + @performance_function("seconds", perf_key="performance") + def extract_perf(self): + """Extract the final execution time from the solver output.""" + return sn.extractsingle( + r"ExecutionTime\s+=\s+(?P