From c939a3cb645195a8778b95055e9bec8fcab5d64a Mon Sep 17 00:00:00 2001 From: Stephanie Brink Date: Tue, 21 Jan 2025 10:23:13 -0800 Subject: [PATCH] add salmon application.py --- experiments/salmon/experiment.py | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 experiments/salmon/experiment.py diff --git a/experiments/salmon/experiment.py b/experiments/salmon/experiment.py new file mode 100644 index 000000000..8839aba6f --- /dev/null +++ b/experiments/salmon/experiment.py @@ -0,0 +1,54 @@ +# 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 Salmon(Experiment, OpenMPExperiment): + + variant( + "workload", + default="gs", + values=("gs", "rt"), + description="salmon-tddft", + ) + + variant( + "version", + default="master", + description="app version", + ) + + def compute_applications_section(self): + + self.add_experiment_variable("experiment_setup", "") + + if self.spec.satisfies("workload=gs"): + self.add_experiment_variable("exercise", "exercise_01_C2H2_gs") + self.add_experiment_variable("inp_file", "C2H2_gs.inp") + elif self.spec.satisfies("workload=rt"): + self.add_experiment_variable("exercise", "exercise_03_C2H2_rt") + self.add_experiment_variable("inp_file", "C2H2_rt_pulse.inp") + self.add_experiment_variable("restart_data", "../../gs/salmon_{n_nodes}_{n_ranks}_{n_threads}/data_for_restart/") + + if self.spec.satisfies("+openmp"): + self.add_experiment_variable("n_ranks", "{processes_per_node} * {n_nodes}") + self.add_experiment_variable("processes_per_node", ["4"]) + self.add_experiment_variable("n_nodes", ["1"], True) + 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" + + self.add_spack_spec( + self.name, [f"salmon@{app_version}", system_specs["compiler"]] + )