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 osu-micro-benchmarks experiment class #433

Open
wants to merge 28 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
7ac5171
initial commit of osu-micro-benchmarks experiment.py class
Aug 23, 2024
34fffeb
fixing workload name
Aug 23, 2024
d7b8eff
adding ability to configure workloads through spec
Aug 23, 2024
1b1887b
removed unnecessary variant
Sep 3, 2024
a4cc7ed
Merge branch 'develop' into experiments/osu-micro-benchmarks
pearce8 Sep 23, 2024
5717f06
lint
pearce8 Sep 23, 2024
d1ffb31
lint
pearce8 Sep 24, 2024
7556fee
lint
pearce8 Sep 24, 2024
8296c22
Merge branch 'develop' into experiments/osu-micro-benchmarks
pearce8 Sep 24, 2024
af08a21
Merge branch 'LLNL:develop' into experiments/osu-micro-benchmarks
august-knox Oct 28, 2024
c77da2e
fixing experiment class
Oct 30, 2024
d310741
lint
Oct 30, 2024
c009e45
lint
Oct 30, 2024
8928a5a
adding dryrun
Oct 30, 2024
3770038
fixing dry run
Oct 30, 2024
4933893
moving experiment class to new loaction
Nov 4, 2024
57f6a9d
progress on updating osu-microbenchmarks
Nov 13, 2024
4601fe8
updating experiment class
Nov 13, 2024
3f33a7e
Delete var/exp_repo/experiments/osu-micro-benchmarks directory
august-knox Nov 13, 2024
8f3ead4
Merge branch 'develop' into experiments/osu-micro-benchmarks
august-knox Nov 13, 2024
a858c6f
Merge branch 'develop' into experiments/osu-micro-benchmarks
pearce8 Nov 15, 2024
65183bc
removing tab in dryrun
Nov 15, 2024
6e04bab
removing other tabs in run.yml
Nov 15, 2024
a2b6d25
lint
Nov 15, 2024
87011e3
license
Nov 15, 2024
4c8a714
adding prefix to benchpark command
Nov 15, 2024
f3e4da9
removing redundant system instantiation
Nov 15, 2024
a437887
updating scaling formatting
Nov 25, 2024
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
11 changes: 11 additions & 0 deletions .github/workflows/run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,17 @@ jobs:
--disable-logger \
workspace setup --dry-run

- name: Dry run dynamic osu-micro-benchmarks/mpi-only with dynamic CTS ruby
run: |
./bin/benchpark experiment init --dest=osu-micro-benchmarks-mpi-only osu-micro-benchmarks
./bin/benchpark setup ./osu-micro-benchmarks-mpi-only ./ruby-system workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/osu-micro-benchmarks-mpi-only/Cts-6d48f81/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run

- name: Dry run dynamic ior/mpi with dynamic CTS ruby
run: |
./bin/benchpark experiment init --dest=ior-mpi ior
Expand Down
115 changes: 115 additions & 0 deletions experiments/osu-micro-benchmarks/experiment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# 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.error import BenchparkError
from benchpark.experiment import Experiment


class OsuMicroBenchmarks(Experiment):

variant(
"workload",
default="osu_latency",
values=(
"osu_bibw",
"osu_bw",
"osu_latency",
"osu_latency_mp",
"osu_latency_mt",
"osu_mbw_mr",
"osu_multi_lat",
"osu_allgather",
"osu_allreduce_persistent",
"osu_alltoallw",
"osu_bcast_persistent",
"osu_iallgather",
"osu_ialltoallw",
"osu_ineighbor_allgather",
"osu_ireduce",
"osu_neighbor_allgatherv",
"osu_reduce_persistent",
"osu_scatterv",
"osu_allgather_persistent",
"osu_alltoall",
"osu_alltoallw_persistent",
"osu_gather",
"osu_iallgatherv",
"osu_ibarrier",
"osu_ineighbor_allgatherv",
"osu_ireduce_scatter",
"osu_neighbor_alltoall",
"osu_reduce_scatter",
"osu_scatterv_persistent",
"osu_allgatherv",
"osu_alltoall_persistent",
"osu_barrier",
"osu_gather_persistent",
"osu_iallreduce",
"osu_ibcast",
"osu_ineighbor_alltoall",
"osu_iscatter",
"osu_neighbor_alltoallv",
"osu_reduce_scatter_persistent",
"osu_allgatherv_persistent",
"osu_alltoallv",
"osu_barrier_persistent",
"osu_gatherv",
"osu_ialltoall",
"osu_igather",
"osu_ineighbor_alltoallv",
"osu_iscatterv",
"osu_neighbor_alltoallw",
"osu_scatter",
"osu_allreduce",
"osu_alltoallv_persistent",
"osu_bcast",
"osu_gatherv_persistent",
"osu_ialltoallv",
"osu_igatherv",
"osu_ineighbor_alltoallw",
"osu_neighbor_allgather",
"osu_reduce",
"osu_scatter_persistent",
"osu_acc_latency",
"osu_cas_latency",
"osu_fop_latency",
"osu_get_acc_latency",
"osu_get_bw",
"osu_get_latency",
"osu_put_bibw",
"osu_put_bw",
"osu_put_latency",
"osu_hello",
"osu_init",
),
description="workloads available",
)

def compute_applications_section(self):
scaling_modes = {
"single_node": self.spec.satisfies("+single_node"),
}

scaling_mode_enabled = [key for key, value in scaling_modes.items() if value]
if len(scaling_mode_enabled) != 1:
raise BenchparkError(
f"Only one type of scaling per experiment is allowed for application package {self.name}"
)

num_nodes = {"n_nodes": 2}

if self.spec.satisfies("+single_node"):
for pk, pv in num_nodes.items():
self.add_experiment_variable(pk, pv, True)

def compute_spack_section(self):
system_specs = {}
system_specs["compiler"] = "default-compiler"
system_specs["mpi"] = "default-mpi"
self.add_spack_spec(system_specs["mpi"])
self.add_spack_spec(
self.name, ["osu-micro-benchmarks", system_specs["compiler"]]
)