diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml index acb38b59..e8366f44 100644 --- a/.github/workflows/run.yml +++ b/.github/workflows/run.yml @@ -730,3 +730,30 @@ jobs: benchmark_spec: kripke+rocm caliper=mpi,time system_name: tioga system_spec: llnl-elcapitan rocm=5.5.1 compiler=cce +gtl + + - name: stream/mpi caliper=mpi,time ruby llnl-cluster cluster=ruby + uses: ./.github/actions/dynamic-dry-run + with: + benchmark_name: stream + benchmark_mode: mpi + benchmark_spec: stream caliper=mpi,time + system_name: ruby + system_spec: llnl-cluster cluster=ruby + + - name: stream/mpi caliper=mpi,time lassen llnl-sierra cuda=11-8-0 compiler=clang-ibm + uses: ./.github/actions/dynamic-dry-run + with: + benchmark_name: stream + benchmark_mode: mpi + benchmark_spec: stream caliper=mpi,time + system_name: lassen + system_spec: llnl-sierra cuda=11-8-0 compiler=clang-ibm + + - name: stream/mpi caliper=mpi,time llnl-elcapitan rocm=5.5.1 compiler=cce + uses: ./.github/actions/dynamic-dry-run + with: + benchmark_name: stream + benchmark_mode: mpi + benchmark_spec: stream caliper=mpi,time + system_name: tioga + system_spec: llnl-elcapitan rocm=5.5.1 compiler=cce diff --git a/experiments/stream/experiment.py b/experiments/stream/experiment.py new file mode 100644 index 00000000..1d5b85e6 --- /dev/null +++ b/experiments/stream/experiment.py @@ -0,0 +1,57 @@ +# Copyright 2023 Lawrence Livermore National Security, LLC and other +# Benchpark Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: Apache-2.0 + +from benchpark.directives import variant +from benchpark.experiment import Experiment +from benchpark.caliper import Caliper + + +class Stream( + Experiment, + Caliper, +): + variant( + "workload", + default="stream", + description="stream", + ) + + variant( + "version", + default="5.10", + description="app version", + ) + + def compute_applications_section(self): + + array_size = {"s": 650000000} + + self.add_experiment_variable("processes_per_node", "1", True) + self.add_experiment_variable("n", "35", False) + self.add_experiment_variable("o", "0", False) + self.add_experiment_variable("n_ranks", 1, True) + self.add_experiment_variable("n_threads_per_proc", [16, 32], True) + + self.matrix_experiment_variables("n_threads_per_proc") + + for pk, pv in array_size.items(): + self.add_experiment_variable(pk, pv, True) + + def compute_spack_section(self): + # get package version + app_version = self.spec.variants["version"][0] + + # get system config options + # TODO: Get compiler/mpi/package handles directly from system.py + system_specs = {} + system_specs["compiler"] = "default-compiler" + system_specs["mpi"] = "default-mpi" + + # set package spack specs + self.add_spack_spec(system_specs["mpi"]) + + self.add_spack_spec( + self.name, [f"stream@{app_version}", system_specs["compiler"]] + )