Skip to content

Commit

Permalink
Add genesis experiment (#534)
Browse files Browse the repository at this point in the history
* initial commit for porting genesis to current benchpark

* add dry run

* update workloads

* bug fix, add another dryrun, remove legacy tests

* increase mpi ranks

* experiment.py to run genesis on fugaku (#544)

* remove extra line

---------

Co-authored-by: dyokelson <dewi.yokelson@gmail.com>
Co-authored-by: SBA0486 <140486157+SBA0486@users.noreply.github.com>
  • Loading branch information
3 people authored Jan 17, 2025
1 parent 3a5a443 commit b8792c7
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 21 deletions.
44 changes: 24 additions & 20 deletions .github/workflows/run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -346,26 +346,6 @@ jobs:
--disable-logger \
workspace setup --dry-run
- name: Dry run genesis/openmp with allocation modifier on Fugaku
run: |
./bin/benchpark setup genesis/openmp RCCS-Fugaku-Fujitsu-A64FX-TofuD workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/genesis/openmp/RCCS-Fugaku-Fujitsu-A64FX-TofuD/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
- name: Dry run genesis/openmp with allocation modifier on nosite-x86_64
run: |
./bin/benchpark setup genesis/openmp nosite-x86_64 workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/genesis/openmp/nosite-x86_64/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
- name: Dry run salmon/openmp with allocation modifier on Fugaku
run: |
./bin/benchpark setup salmon/openmp RCCS-Fugaku-Fujitsu-A64FX-TofuD workspace/
Expand Down Expand Up @@ -616,3 +596,27 @@ jobs:
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
- name: Dry run dynamic genesis/openmp with dynamic CTS ruby
run: |
system_id=$(./bin/benchpark system id ./ruby-system)
./bin/benchpark experiment init --dest genesis-openmp genesis +openmp
./bin/benchpark setup genesis-openmp ./ruby-system workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/genesis-openmp/$system_id/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
- name: Dry run dynamic genesis/openmp with dynamic fugaku
run: |
system_id=$(./bin/benchpark system id ./fugaku-system)
./bin/benchpark experiment init --dest=genesis-openmp-fugaku genesis+openmp
./bin/benchpark setup ./genesis-openmp-fugaku ./fugaku-system workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/genesis-openmp-fugaku/$system_id/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
67 changes: 67 additions & 0 deletions experiments/genesis/experiment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# 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.openmp import OpenMPExperiment


class Genesis(Experiment, OpenMPExperiment):

variant(
"workload",
default="DHFR",
values=("DHFR", "ApoA1", "UUN", "cryoEM"),
description="genesis",
)

variant(
"version",
default="main",
description="app version",
)

def compute_applications_section(self):

self.add_experiment_variable("experiment_setup", "")
self.add_experiment_variable("lx", "32")
self.add_experiment_variable("ly", "6")
self.add_experiment_variable("lz", "4")
self.add_experiment_variable("lt", "3")
self.add_experiment_variable("px", "1")
self.add_experiment_variable("py", "1")
self.add_experiment_variable("pz", "1")
self.add_experiment_variable("pt", "1")
self.add_experiment_variable("tol_outer", "-1")
self.add_experiment_variable("tol_inner", "-1")
self.add_experiment_variable("maxiter_plus1_outer", "6")
self.add_experiment_variable("maxiter_inner", "50")

if self.spec.satisfies("+openmp"):
self.add_experiment_variable("n_nodes", ["2"], True)
self.add_experiment_variable("processes_per_node", ["4"])
self.add_experiment_variable("n_ranks", "{processes_per_node} * {n_nodes}")
self.add_experiment_variable("omp_num_threads", ["12"])
self.add_experiment_variable("arch", "OpenMP")

def compute_spack_section(self):
# get package version
app_version = self.spec.variants["version"][0]

system_specs = {}
system_specs["compiler"] = "default-compiler"
system_specs["mpi"] = "default-mpi"
system_specs["lapack"] = "lapack"

# if package_spec left empty spack will use external
self.add_spack_spec(system_specs["mpi"])
self.add_spack_spec(system_specs["lapack"])

self.add_spack_spec(
self.name, [f"genesis@{app_version} +mpi", system_specs["compiler"]]
)
self.add_spack_spec(
system_specs["lapack"], [system_specs["lapack"], system_specs["compiler"]]
)
5 changes: 4 additions & 1 deletion repo/genesis/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ class Genesis(AutotoolsPackage):
homepage = "https://www.r-ccs.riken.jp/labs/cbrt/"
git = "https://github.com/genesis-release-r-ccs/genesis"

version("master", branch="master", submodules=False)
version("main", branch="main", submodules=False)
version(
"2.1.4", submodules=False, tag="v2.1.4", commit="48fa5654ae1ecdf606fb6cd0bdcc2952f5caaa65"
)
version(
"2.1.3", submodules=False, tag="v2.1.3", commit="835ef1538f9350cfa7e9489f340837d0908afbd2"
)
Expand Down

0 comments on commit b8792c7

Please sign in to comment.