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

Fix legacy salmon and add experiment class for salmon #391

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
28 changes: 28 additions & 0 deletions .github/workflows/run.yml
slabasan marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ jobs:
--unsigned \
--update-index ci-buildcache \
$(spack find --format '/{hash}')

dryrunexperiments:
runs-on: ubuntu-22.04
steps:
Expand Down Expand Up @@ -259,6 +260,15 @@ jobs:
--disable-logger \
workspace setup --dry-run

- name: Dry run salmon/openmp with allocation modifier on x86
run: |
./bin/benchpark setup salmon/openmp nosite-x86_64 workspace/
. workspace/setup.sh
ramble \
--workspace-dir workspace/salmon/openmp/nosite-x86_64/workspace \
--disable-progress-bar \
--disable-logger \
workspace setup --dry-run
dynamicdryrunexperiments:
runs-on: ubuntu-22.04
steps:
Expand Down Expand Up @@ -799,3 +809,21 @@ jobs:
benchmark_spec: stream caliper=mpi,time
system_name: tioga
system_spec: llnl-elcapitan rocm=5.5.1 compiler=cce

- name: salmon ruby llnl-cluster cluster=ruby compiler=intel
uses: ./.github/actions/dynamic-dry-run
with:
benchmark_name: salmon-tddft
benchmark_mode: openmp
benchmark_spec: salmon-tddft
system_name: ruby
system_spec: llnl-cluster cluster=ruby compiler=intel

- name: salmon fugaku riken-fugaku
uses: ./.github/actions/dynamic-dry-run
with:
benchmark_name: salmon-tddft
benchmark_mode: openmp
benchmark_spec: salmon-tddft
system_name: fugaku
system_spec: riken-fugaku
56 changes: 56 additions & 0 deletions experiments/salmon-tddft/experiment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# 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 SalmonTddft(Experiment, OpenMPExperiment):
variant(
"workload",
default="gs",
values=("gs", "rt"),
multi=True,
description="salmon-tddft",
)

variant(
"version",
default="2.0.0",
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("omp_num_threads", ["12"])

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)

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"]]
)
12 changes: 0 additions & 12 deletions legacy/experiments/salmon/openmp/execute_experiment.tpl

This file was deleted.

8 changes: 3 additions & 5 deletions legacy/experiments/salmon/openmp/ramble.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,12 @@ ramble:

software:
packages:
default-compiler:
pkg_spec: [email protected]
salmon-tddft:
pkg_spec: [email protected].2
compiler: compiler-fj
pkg_spec: [email protected].0
compiler: compiler-fortran
cmake:
pkg_spec: cmake
compiler: compiler-gcc
compiler: default-compiler
environments:
salmon-tddft:
packages:
Expand Down
2 changes: 2 additions & 0 deletions legacy/systems/LLNL-Ruby-icelake-OmniPath/software.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ software:
pkg_spec: [email protected]
compiler-intel:
pkg_spec: [email protected]
compiler-fortran:
pkg_spec: [email protected]
blas:
pkg_spec: [email protected]
lapack:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ software:
compiler: default-compiler
compiler-clang:
pkg_spec: clang@{default_llvm_version}
compiler-fj:
compiler-fortran:
pkg_spec: fj@{default_fj_version}
compiler-gcc:
pkg_spec: gcc@{default_gnu_version}
Expand Down
2 changes: 2 additions & 0 deletions legacy/systems/nosite-x86_64/software.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ software:
pkg_spec: blas
lapack:
pkg_spec: lapack
compiler-fortran:
pkg_spec: gcc
6 changes: 4 additions & 2 deletions repo/salmon-tddft/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@ class SalmonTddft(ExecutableApplication):

tags = ['mpi','openmp']

variant("openmp", default=True, description="Enable OpenMP support")

executable('pre-process', 'cp {input_path}/* .', use_mpi=False)

executable('post-process', 'cp -r ./data_for_restart {input_path}', use_mpi=False)

executable('link-restart', 'ln -s -T {restart_data} restart', use_mpi=False)

executable('execute', '-stdin {input_data} ' +
'salmon' , use_mpi=True)
executable('execute', 'salmon ' +
'{input_data}' , use_mpi=True)

input_file('salmon-v2_gs', url='http://salmon-tddft.jp/download/SALMON-v.2.2.0.tar.gz',
md5='d71436df3a1ad507f665abb8453eee15',
Expand Down
Loading