Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding STREAM experiment class #529

Open
wants to merge 14 commits into
base: develop
Choose a base branch
from
12 changes: 12 additions & 0 deletions .github/workflows/run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -616,3 +616,15 @@ jobs:
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run

- name: Dry run dynamic stream/openmp with dynamic CTS ruby
run: |
./bin/benchpark experiment init --dest=stream stream
./bin/benchpark setup stream ./ruby-system workspace/
system_id=$(./bin/benchpark system id ./ruby-system)
. workspace/setup.sh
ramble \
--workspace-dir "workspace/stream/$system_id/workspace" \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
57 changes: 57 additions & 0 deletions experiments/stream/experiment.py
Original file line number Diff line number Diff line change
@@ -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.expr.builtin.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"]]
)