diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e22e4ccaa..6522a5809 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -23,13 +23,13 @@ jobs:
license: ${{ steps.filter.outputs.license }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
+ - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # @v2
if: ${{ github.event_name == 'push' }}
with:
fetch-depth: 0
# For pull requests it's not necessary to checkout the code
- - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a
+ - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
id: filter
with:
filters: |
@@ -48,6 +48,7 @@ jobs:
- '.github/**'
- 'bin/**'
- 'configs/**'
+ - 'checkout-versions.yaml'
- 'experiments/**'
- 'repo/**'
license:
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index d0fb445f2..98ba3c468 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -7,10 +7,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
- name: Setup Python
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
+ uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d
with:
python-version: '3.11'
cache: 'pip'
@@ -18,15 +18,20 @@ jobs:
- name: Setup GitHub Pages
id: pages
- uses: actions/configure-pages@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d
+ uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b
- name: Install Sphinx and Theme via Pip
run: |
pip install -r .github/workflows/requirements/docs.txt
+ # create a dummy workspace to get a working ramble
+ bin/benchpark setup saxpy/openmp nosite-x86_64 /tmp/workspace
+ # this is gross and we should better setup ramble for people or make it a Spack package
+ pip install -r /tmp/workspace/ramble/requirements.txt
- name: Build with sphinx
run: |
- sphinx-build docs/ _build
+ cd docs
+ make html WORKSPACE_PATH=/tmp/workspace
- name: Check for Typos using Codespell
run: |
@@ -36,7 +41,7 @@ jobs:
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa
if: github.ref == 'refs/heads/develop'
with:
- path: ./_build
+ path: ./docs/_build/html
deploy:
needs: build
@@ -54,4 +59,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
- uses: actions/deploy-pages@decdde0ac072f6dcbe43649d82d9c635fff5b4e4
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e
diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml
index a43d7ae4f..6330ac93d 100644
--- a/.github/workflows/license.yml
+++ b/.github/workflows/license.yml
@@ -6,10 +6,10 @@ jobs:
verify-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
- name: Set up Python 3.11
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
+ uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d
with:
python-version: '3.11'
cache: 'pip'
diff --git a/.github/workflows/requirements/docs.txt b/.github/workflows/requirements/docs.txt
index 6078a7a31..1a85cd4eb 100644
--- a/.github/workflows/requirements/docs.txt
+++ b/.github/workflows/requirements/docs.txt
@@ -2,3 +2,21 @@
sphinx==7.2.6
sphinx-rtd-theme==2.0.0
codespell==2.2.6
+pandas==2.2.1
+pyyaml==6.0.1
+sphinxcontrib-programoutput==0.17
+# The remaining requirements are from Ramble
+pytest
+flake8
+google-cloud-storage # for gcs fetch test
+google-api-core # for gcs fetch error .exceptions
+coverage
+pre-commit
+graphlib-backport;python_version<"3.9"
+urllib3==1.26.18;python_version<="3.6"
+protobuf;python_version>"3.6"
+protobuf==3.19.4;python_version<="3.6"
+pyarrow==3.0.0;python_version<="3.6"
+google-cloud-bigquery
+tqdm
+deprecation
diff --git a/.github/workflows/requirements/style.txt b/.github/workflows/requirements/style.txt
index 8d5934c31..de8aea164 100644
--- a/.github/workflows/requirements/style.txt
+++ b/.github/workflows/requirements/style.txt
@@ -1,4 +1,4 @@
-black==24.2.0
+black==24.3.0
flake8==7.0.0
isort==5.13.2
codespell==2.2.6
diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml
index acda18e73..0be114140 100644
--- a/.github/workflows/run.yml
+++ b/.github/workflows/run.yml
@@ -11,7 +11,11 @@ jobs:
sudo apt-get remove -y gcc-13
- name: Checkout Benchpark
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
+
+ - name: Add needed Python libs
+ run: |
+ pip install -r ./requirements.txt
- name: Build Saxpy Workspace
run: |
@@ -22,7 +26,7 @@ jobs:
. workspace/setup.sh
spack mirror add ci-buildcache oci://ghcr.io/llnl/benchpark-binary-cache
- spack config add "packages:all:target:[nosite-x86_64_v3]"
+ spack config add "packages:all:target:[x86_64_v3]"
env | grep SPACK >> "$GITHUB_ENV"
env | grep RAMBLE >> "$GITHUB_ENV"
@@ -42,12 +46,12 @@ jobs:
working-directory: ./workspace/saxpy/openmp/nosite-x86_64/workspace/
run: |
ramble \
- -c variables:n_nodes:1 \
- -c variables:n_ranks:1 \
--workspace-dir . \
--disable-progress-bar \
--disable-logger \
- on
+ on \
+ --executor '{execute_experiment}' \
+ --where '{n_nodes} == 1'
- name: Analyze Saxpy Results
working-directory: ./workspace/saxpy/openmp/nosite-x86_64/workspace/
diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml
index a4543f2fc..ed17ef2a1 100644
--- a/.github/workflows/style.yml
+++ b/.github/workflows/style.yml
@@ -6,10 +6,10 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
- name: Set up Python 3.11
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
+ uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d
with:
python-version: '3.11'
cache: 'pip'
diff --git a/README.rst b/README.rst
index fb2559999..bb9b4a50f 100644
--- a/README.rst
+++ b/README.rst
@@ -1,7 +1,17 @@
-==================================================
-Benchpark
-==================================================
-
+.. raw:: html
+
+
+
+
+
+
+
+Overview
+--------
You can find detailed documentation at `software.llnl.gov/benchpark
`_. Benchpark can also be found on `GitHub
`_.
@@ -12,19 +22,19 @@ reproducible, working specifications for the following:
1. **System specifications**
-- location of system compilers and system MPI
-- system scheduler and launcher
+* location of system compilers and system MPI
+* system scheduler and launcher
2. **Benchmark specifications**
-- source repo and version
-- build (Spack) configuration
-- run (Ramble) configuration
+* source repo and version
+* build (Spack) configuration
+* run (Ramble) configuration
3. **Experiment specifications**
-- programming models to use for benchmarks on a given system type
-- valid experiments for benchmarks on a given system (scientific parameter studies, performance parameter studies, etc.)
+* programming models to use for benchmarks on a given system type
+* valid experiments for benchmarks on a given system (scientific parameter studies, performance parameter studies, etc.)
Dependencies
------------
diff --git a/bin/benchpark b/bin/benchpark
index 395ae0a4e..a5359a2e9 100755
--- a/bin/benchpark
+++ b/bin/benchpark
@@ -6,12 +6,14 @@
# SPDX-License-Identifier: Apache-2.0
import argparse
+from contextlib import contextmanager
import os
import pathlib
import shlex
import shutil
import subprocess
import sys
+import yaml
DEBUG = False
@@ -37,6 +39,7 @@ def main():
actions = {}
benchpark_list(subparsers, actions)
benchpark_setup(subparsers, actions)
+ benchpark_tags(subparsers, actions)
args = parser.parse_args()
no_args = True if len(sys.argv) == 1 else False
@@ -60,7 +63,6 @@ def main():
def get_version():
benchpark_version = __version__
-
return benchpark_version
@@ -87,6 +89,15 @@ def benchpark_benchmarks():
return benchmarks
+def benchpark_experiments():
+ source_dir = source_location()
+ experiments = []
+ experiments_dir = source_dir / "experiments"
+ for x in os.listdir(experiments_dir):
+ experiments.append(f"{x}")
+ return experiments
+
+
def benchpark_systems():
source_dir = source_location()
systems = []
@@ -95,6 +106,28 @@ def benchpark_systems():
return systems
+def benchpark_get_tags():
+ f = source_location() / "tags.yaml"
+ tags = []
+
+ with open(f, "r") as stream:
+ try:
+ data = yaml.safe_load(stream)
+ except yaml.YAMLError as exc:
+ print(exc)
+
+ for k0, v0 in data.items():
+ if k0 == "benchpark-tags":
+ for k, v in v0.items():
+ if isinstance(v, list):
+ for i in v:
+ tags.append(i)
+ else:
+ print("ERROR file does not contain benchpark-tags")
+
+ return tags
+
+
def benchpark_list_handler(args):
source_dir = source_location()
sublist = args.sublist
@@ -135,6 +168,17 @@ def benchpark_check_benchmark(arg_str):
return found
+def benchpark_check_experiment(arg_str):
+ experiments = benchpark_experiments()
+ found = arg_str in experiments
+ if not found:
+ out_str = f'Invalid benchmark/experiment "{arg_str}" - must choose one of: '
+ for experiment in experiments:
+ out_str += f"\n\t{experiment}"
+ raise ValueError(out_str)
+ return found
+
+
def benchpark_check_system(arg_str):
systems = benchpark_systems()
found = arg_str in systems
@@ -146,6 +190,17 @@ def benchpark_check_system(arg_str):
return found
+def benchpark_check_tag(arg_str):
+ tags = benchpark_get_tags()
+ found = arg_str in tags
+ if not found:
+ out_str = f'Invalid tag "{arg_str}" - must choose one of: '
+ for tag in tags:
+ out_str += f"\n\t{tag}"
+ raise ValueError(out_str)
+ return found
+
+
def benchpark_setup(subparsers, actions_dict):
create_parser = subparsers.add_parser(
"setup", help="Set up an experiment and prepare it to build/run"
@@ -173,22 +228,52 @@ def benchpark_setup(subparsers, actions_dict):
def run_command(command_str, env=None):
- subprocess.run(
+ proc = subprocess.Popen(
shlex.split(command_str),
env=env,
- check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
)
+ stdout, stderr = proc.communicate()
+ if proc.returncode != 0:
+ raise RuntimeError(
+ f"Failed command: {command_str}\nOutput: {stdout}\nError: {stderr}"
+ )
+
+ return (stdout, stderr)
+
+
+def benchpark_tags(subparsers, actions_dict):
+ create_parser = subparsers.add_parser("tags", help="Tags in Benchpark experiments")
+ create_parser.add_argument(
+ "experiments_root",
+ type=str,
+ help="The experiments_root you specified during Benchpark setup.",
+ )
+ create_parser.add_argument(
+ "-a",
+ "--application",
+ action="store",
+ help="The application for which to find Benchpark tags",
+ )
+ create_parser.add_argument(
+ "-t",
+ "--tag",
+ action="store",
+ help="The tag for which to search in Benchpark experiments",
+ )
+ actions_dict["tags"] = benchpark_tags_handler
# Note: it would be nice to vendor spack.llnl.util.link_tree, but that
# involves pulling in most of llnl/util/ and spack/util/
-def symlink_tree(src, dst):
+def symlink_tree(src, dst, include_fn=None):
"""Like ``cp -R`` but instead of files, create symlinks"""
src = os.path.abspath(src)
dst = os.path.abspath(dst)
+ # By default, we include all filenames
+ include_fn = include_fn or (lambda f: True)
for x in [src, dst]:
if not os.path.isdir(x):
raise ValueError(f"Not a directory: {x}")
@@ -197,11 +282,30 @@ def symlink_tree(src, dst):
dst_dir = pathlib.Path(dst) / relative_src_dir
dst_dir.mkdir(parents=True, exist_ok=True)
for x in files:
+ if not include_fn(x):
+ continue
dst_symlink = dst_dir / x
src_file = os.path.join(src_subdir, x)
os.symlink(src_file, dst_symlink)
+@contextmanager
+def working_dir(location):
+ initial_dir = os.getcwd()
+ try:
+ os.chdir(location)
+ yield
+ finally:
+ os.chdir(initial_dir)
+
+
+def git_clone_commit(url, commit, destination):
+ run_command(f"git clone -c feature.manyFiles=true {url} {destination}")
+
+ with working_dir(destination):
+ run_command(f"git checkout {commit}")
+
+
def benchpark_setup_handler(args):
"""
experiments_root/
@@ -248,17 +352,37 @@ def benchpark_setup_handler(args):
ramble_workspace_dir = workspace_dir / "workspace"
ramble_configs_dir = ramble_workspace_dir / "configs"
+ ramble_logs_dir = ramble_workspace_dir / "logs"
+ ramble_spack_experiment_configs_dir = (
+ ramble_configs_dir / "auxiliary_software_files"
+ )
print(f"Setting up configs for Ramble workspace {ramble_configs_dir}")
configs_src_dir = source_dir / "configs" / str(system)
experiment_src_dir = source_dir / "experiments" / benchmark
modifier_config_dir = source_dir / "modifiers" / modifier / "configs"
-
ramble_configs_dir.mkdir(parents=True)
- symlink_tree(configs_src_dir, ramble_configs_dir)
- symlink_tree(experiment_src_dir, ramble_configs_dir)
- symlink_tree(modifier_config_dir, ramble_configs_dir)
+ ramble_logs_dir.mkdir(parents=True)
+ ramble_spack_experiment_configs_dir.mkdir(parents=True)
+
+ def include_fn(fname):
+ # Only include .yaml and .tpl files
+ # Always exclude files that start with "."
+ if fname.startswith("."):
+ return False
+ if fname.endswith(".yaml") or fname.endswith(".tpl"):
+ return True
+ return False
+
+ symlink_tree(configs_src_dir, ramble_configs_dir, include_fn)
+ symlink_tree(experiment_src_dir, ramble_configs_dir, include_fn)
+ symlink_tree(modifier_config_dir, ramble_configs_dir, include_fn)
+ symlink_tree(
+ source_dir / "configs" / "common",
+ ramble_spack_experiment_configs_dir,
+ include_fn,
+ )
spack_location = experiments_root / "spack"
ramble_location = experiments_root / "ramble"
@@ -269,12 +393,16 @@ def benchpark_setup_handler(args):
initializer_script = experiments_root / "setup.sh"
+ checkout_versions_location = source_dir / "checkout-versions.yaml"
+ with open(checkout_versions_location, "r") as yaml_file:
+ data = yaml.safe_load(yaml_file)
+ ramble_commit = data["versions"]["ramble"]
+ spack_commit = data["versions"]["spack"]
+
if not spack_location.exists():
print(f"Cloning spack into {spack_location}")
- run_command(
- "git clone --depth=1 -c feature.manyFiles=true "
- "https://github.com/spack/spack.git "
- f"{spack_location}"
+ git_clone_commit(
+ "https://github.com/spack/spack.git", spack_commit, spack_location
)
env = {"SPACK_DISABLE_LOCAL_CONFIG": "1"}
@@ -286,10 +414,10 @@ def benchpark_setup_handler(args):
if not ramble_location.exists():
print(f"Cloning ramble into {ramble_location}")
- run_command(
- "git clone --depth=1 -c feature.manyFiles=true "
- "https://github.com/GoogleCloudPlatform/ramble.git "
- f"{ramble_location}"
+ git_clone_commit(
+ "https://github.com/GoogleCloudPlatform/ramble.git",
+ ramble_commit,
+ ramble_location,
)
run_command(f"{ramble_exe} repo add --scope=site {source_dir}/repo")
@@ -330,5 +458,54 @@ Further steps are needed to build the experiments (ramble -P -D {ramble_workspac
print(instructions)
+def helper_experiments_tags(ramble_exe, experiments):
+ # find all tags in Ramble applications (both in Ramble built-in and in Benchpark/repo)
+ (tags_stdout, tags_stderr) = run_command(f"{ramble_exe} attributes --tags --all")
+ ramble_applications_tags = {}
+ lines = tags_stdout.splitlines()
+
+ for line in lines:
+ key_value = line.split(":")
+ ramble_applications_tags[key_value[0]] = key_value[1].strip().split(",")
+
+ benchpark_experiments_tags = {}
+ for exp in experiments:
+ benchpark_experiments_tags[exp] = ramble_applications_tags[exp]
+ return benchpark_experiments_tags
+
+
+def benchpark_tags_handler(args):
+ """
+ Filter ramble tags by benchpark experiments
+ """
+ source_dir = source_location()
+ experiments_root = pathlib.Path(os.path.abspath(args.experiments_root))
+ ramble_location = experiments_root / "ramble"
+ ramble_exe = ramble_location / "bin" / "ramble"
+ experiments = benchpark_experiments()
+
+ if args.tag:
+ if benchpark_check_tag(args.tag):
+ # find all applications in Ramble that have a given tag (both in Ramble built-in and in Benchpark/repo)
+ (tag_stdout, tag_stderr) = run_command(f"{ramble_exe} list -t {args.tag}")
+ lines = tag_stdout.splitlines()
+
+ for line in lines:
+ if line in experiments:
+ print(line)
+
+ elif args.application:
+ if benchpark_check_experiment(args.application):
+ benchpark_experiments_tags = helper_experiments_tags(
+ ramble_exe, experiments
+ )
+ print(benchpark_experiments_tags[args.application])
+ else:
+ benchpark_experiments_tags = helper_experiments_tags(ramble_exe, experiments)
+ print("All tags that exist in Benchpark experiments:")
+ for k, v in benchpark_experiments_tags.items():
+ print(k)
+
+
if __name__ == "__main__":
main()
diff --git a/experiments/lbann/rocm/execute_experiment.tpl b/checkout-versions.yaml
old mode 100755
new mode 100644
similarity index 62%
rename from experiments/lbann/rocm/execute_experiment.tpl
rename to checkout-versions.yaml
index 1e2ea813e..2d7d07ce6
--- a/experiments/lbann/rocm/execute_experiment.tpl
+++ b/checkout-versions.yaml
@@ -3,11 +3,6 @@
#
# SPDX-License-Identifier: Apache-2.0
-#!/bin/bash
-{batch_nodes}
-{batch_ranks}
-{batch_timeout}
-
-cd {experiment_run_dir}
-
-{command}
+versions:
+ ramble: bb664f142b2cbdb2b2ea39e70a8535c9f27c1179
+ spack: 31de670bd26beca979ebd75dcb0ce90c535a78c4
diff --git a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/compilers.yaml b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/compilers.yaml
index 25129f761..3b3f364cf 100644
--- a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/compilers.yaml
+++ b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/compilers.yaml
@@ -4,25 +4,6 @@
# SPDX-License-Identifier: Apache-2.0
compilers:
-- compiler:
- spec: fj@4.10.0
- modules: []
- paths:
- cc: /opt/FJSVxtclanga/tcsds-1.2.38/bin/fcc
- cxx: /opt/FJSVxtclanga/tcsds-1.2.38/bin/FCC
- f77: /opt/FJSVxtclanga/tcsds-1.2.38/bin/frt
- fc: /opt/FJSVxtclanga/tcsds-1.2.38/bin/frt
- flags: {}
- operating_system: rhel8
- target: aarch64
- environment:
- set:
- fcc_ENV: -Nclang
- FCC_ENV: -Nclang
- prepend_path:
- PATH: /opt/FJSVxtclanga/tcsds-1.2.38/bin
- LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.38/lib64
- extra_rpaths: []
- compiler:
spec: fj@4.8.1
modules: []
@@ -43,83 +24,27 @@ compilers:
LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.36/lib64
extra_rpaths: []
- compiler:
- spec: fj@4.8.0
- modules: []
- paths:
- cc: /opt/FJSVxtclanga/tcsds-1.2.35/bin/fcc
- cxx: /opt/FJSVxtclanga/tcsds-1.2.35/bin/FCC
- f77: /opt/FJSVxtclanga/tcsds-1.2.35/bin/frt
- fc: /opt/FJSVxtclanga/tcsds-1.2.35/bin/frt
- flags: {}
- operating_system: rhel8
- target: aarch64
- environment:
- set:
- fcc_ENV: -Nclang
- FCC_ENV: -Nclang
- prepend_path:
- PATH: /opt/FJSVxtclanga/tcsds-1.2.35/bin
- LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.35/lib64
- extra_rpaths: []
-- compiler:
- spec: fj@4.7.0
- modules: []
+ spec: clang@15.0.3
paths:
- cc: /opt/FJSVxtclanga/tcsds-1.2.34/bin/fcc
- cxx: /opt/FJSVxtclanga/tcsds-1.2.34/bin/FCC
- f77: /opt/FJSVxtclanga/tcsds-1.2.34/bin/frt
- fc: /opt/FJSVxtclanga/tcsds-1.2.34/bin/frt
- flags: {}
- operating_system: rhel8
- target: aarch64
+ cc: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/clang
+ cxx: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/clang++
+ f77: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/flang
+ fc: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/flang
+ flags:
+ cflags: {"-msve-vector-bits=scalable"}
+ cxxflags: {"-msve-vector-bits=scalable"}
+ ldflags: {"-fuse-ld=lld -lelf -ldl"}
environment:
set:
- fcc_ENV: -Nclang
- FCC_ENV: -Nclang
- prepend_path:
- PATH: /opt/FJSVxtclanga/tcsds-1.2.34/bin
- LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.34/lib64
- extra_rpaths: []
-- compiler:
- paths:
- cc: /usr/bin/gcc
- cxx: /usr/bin/g++
- f77: /usr/bin/gfortran
- fc: /usr/bin/gfortran
+ OMPI_CC: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/clang
+ OMPI_CXX: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/clang++
+ OMPI_FC: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/flang
+ OMPI_F77: /vol0004/apps/oss/llvm-v15.0.3/compute_node/bin/flang
+ append_path:
+ LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.36/lib64
operating_system: rhel8
target: aarch64
modules: []
- environment:
- unset: []
- extra_rpaths: []
- flags: {}
- spec: gcc@8.5.0
-- compiler:
- paths:
- cc: /usr/bin/gcc
- cxx: /usr/bin/g++
- f77: /usr/bin/gfortran
- fc: /usr/bin/gfortran
- operating_system: rhel8
- target: x86_64
- modules: []
- environment:
- unset: []
- extra_rpaths: []
- flags: {}
- spec: gcc@8.4.1
-- compiler:
- spec: gcc@12.2.0
- paths:
- cc: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-skylake_avx512/gcc-8.4.1/gcc-12.2.0-bjidm56oz6mejysl3wvjr3mbn7sqk3ec/bin/gcc
- cxx: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-skylake_avx512/gcc-8.4.1/gcc-12.2.0-bjidm56oz6mejysl3wvjr3mbn7sqk3ec/bin//g++
- f77: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-skylake_avx512/gcc-8.4.1/gcc-12.2.0-bjidm56oz6mejysl3wvjr3mbn7sqk3ec/bin/gfortran
- fc: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-skylake_avx512/gcc-8.4.1/gcc-12.2.0-bjidm56oz6mejysl3wvjr3mbn7sqk3ec/bin/gfortran
- flags: {}
- operating_system: rhel8
- target: x86_64
- modules: []
- environment: {}
extra_rpaths: []
- compiler:
spec: gcc@12.2.0
@@ -128,9 +53,19 @@ compilers:
cxx: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/g++
f77: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/gfortran
fc: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/gfortran
- flags: {}
+ flags:
+ ldflags: {"-lelf -ldl"}
+ environment:
+ set:
+ OMPI_CC: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/gcc
+ OMPI_CXX: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/g++
+ OMPI_FC: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/gfortran
+ OMPI_F77: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-12.2.0-sxcx7kmt3qiktffgzzvrj2wmup3g32bc/bin/gfortran
+ OPAL_PREFIX: /vol0004/apps/oss/mpigcc/fjmpi-gcc12
+ append_path:
+ LD_LIBRARY_PATH: /opt/FJSVxtclanga/tcsds-1.2.36/lib64
operating_system: rhel8
target: aarch64
modules: []
- environment: {}
extra_rpaths: []
+
diff --git a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/packages.yaml b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/packages.yaml
index 591b98ebc..8bb9a74ef 100644
--- a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/packages.yaml
+++ b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/auxiliary_software_files/packages.yaml
@@ -5,458 +5,206 @@
packages:
all:
- compiler: [fj, gcc]
+ compiler: [fj, clang, gcc]
providers:
mpi: [fujitsu-mpi, openmpi, mpich]
blas: [fujitsu-ssl2, openblas]
lapack: [fujitsu-ssl2, openblas]
scalapack: [fujitsu-ssl2, netlib-scalapack]
- fftw-api: [fujitsu-fftw, fftw, rist-fftw]
+ fftw-api: [fujitsu-ssl2, fftw, rist-fftw]
permissions:
write: group
htslib:
version: [1.12]
python:
externals:
- - spec: "python@3.10.8%fj +ssl arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/fj-4.8.1/python-3.10.8-7q66snjvhvy7im57hncbgpirmddrb5sk
- - spec: "python@3.10.8%fj +ssl+tkinter arch=linux-rhel8-a64fx"
+ - spec: "python@3.10.8%fj@4.8.1 +ssl+tkinter arch=linux-rhel8-a64fx"
prefix: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/fj-4.8.1/python-3.10.8-5q3ncyl2my7oomopsmukduqo36u6pnkg
- - spec: "python@3.10.8%gcc +ssl arch=linux-rhel8-cascadelake"
- prefix: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-cascadelake/gcc-12.2.0/python-3.10.8-yt6afcnywa36aebxovs3ldscknyzlva3
- - spec: "python@3.10.8%gcc +ssl+tkinter arch=linux-rhel8-cascadelake"
- prefix: /vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-cascadelake/gcc-12.2.0/python-3.10.8-a5u7ucknpzdipu2dd3d7hf2ybkdyprly
openssh:
permissions:
write: user
fujitsu-mpi:
- version: [head, 4.8.1, 4.8.0, 4.7.0]
externals:
- - spec: "fujitsu-mpi@head%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-mpi-latest
- - spec: "fujitsu-mpi@4.8.1%fj arch=linux-rhel8-a64fx"
+ - spec: "fujitsu-mpi@4.8.1%fj@4.8.1 arch=linux-rhel8-a64fx"
prefix: /opt/FJSVxtclanga/tcsds-mpi-1.2.36
- - spec: "fujitsu-mpi@4.8.0%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-mpi-1.2.35
- - spec: "fujitsu-mpi@4.7.0%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-1.2.34
- - spec: "fujitsu-mpi@head%gcc@12.2.0 arch=linux-rhel8-a64fx"
+ - spec: "fujitsu-mpi@4.8.1%clang@15.0.3 arch=linux-rhel8-a64fx"
+ prefix: /opt/FJSVxtclanga/tcsds-mpi-1.2.36
+ - spec: "fujitsu-mpi@4.8.1%gcc@12.2.0 arch=linux-rhel8-a64fx"
prefix: /vol0004/apps/oss/mpigcc/fjmpi-gcc12
- - spec: "fujitsu-mpi@head%gcc@10.4.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/oss/mpigcc/fjmpi-gcc10
- - spec: "fujitsu-mpi@head%gcc@8.5.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/oss/mpigcc/fjmpi-gcc8
buildable: False
fujitsu-ssl2:
- version: [head, 4.8.1, 4.8.0, 4.7.0]
externals:
- - spec: "fujitsu-ssl2@head%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-ssl2-latest
- - spec: "fujitsu-ssl2@4.8.1%fj arch=linux-rhel8-a64fx"
+ - spec: "fujitsu-ssl2@4.8.1%fj@4.8.1 arch=linux-rhel8-a64fx"
+ prefix: /opt/FJSVxtclanga/tcsds-ssl2-1.2.36
+ - spec: "fujitsu-ssl2@4.8.1%clang@15.0.3 arch=linux-rhel8-a64fx"
+ prefix: /opt/FJSVxtclanga/tcsds-ssl2-1.2.36
+ - spec: "fujitsu-ssl2@4.8.1%gcc@12.2.0 arch=linux-rhel8-a64fx"
prefix: /opt/FJSVxtclanga/tcsds-ssl2-1.2.36
- - spec: "fujitsu-ssl2@4.8.0%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-ssl2-1.2.35
- - spec: "fujitsu-ssl2@4.7.0%fj arch=linux-rhel8-a64fx"
- prefix: /opt/FJSVxtclanga/tcsds-1.2.34
- buildable: False
- rist-fftw:
- externals:
- - spec: "rist-fftw@3.3.9-272-g63d6bd70 arch=linux-rhel8-a64fx"
- prefix: /vol0004/share/rist/fftw/gcc-10.3.0/3.3.9-272-g63d6bd70
- buildable: False
- ntchem:
- externals:
- - spec: "ntchem@13.0.0%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/ntchem/aarch64/NTChem2013/13.0.0/tcsds-1.2.36/release_mpiomp
- - spec: "ntchem@12.2.0%fj arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/ntchem/aarch64/NTChem2013/12.2.0/tcsds-1.2.34/release_mpiomp
- buildable: False
- abinitmp:
- externals:
- - spec: "abinitmp@1-22%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/SPACK-Feb2023-ABINIT-MP-VER1-REV22
- - spec: "abinitmp@2-4%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/SPACK-Feb2023-ABINIT-MP-VER2-REV4
- - spec: "abinitmp@2-8%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/SPACK-Jan2024-ABINIT-MP-VER2-REV8
- buildable: False
- fds:
- externals:
- - spec: "fds@6.7.7%fj@4.8.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/FDS/fds-FDS6.7.7/Build/mpi_fugaku
- - spec: "fds@6.7.9%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/FDS/fds-FDS6.7.9/Build/mpi_fugaku
- buildable: False
- ffvhc-ace:
- externals:
- - spec: "ffvhc-ace@0.1%fj@4.8.1 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/FFVHC-ACE/0.1/bin
- buildable: False
- quantum-espresso:
- externals:
- - spec: "quantum-espresso@6.5%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-6.5/bin
- - spec: "quantum-espresso@6.6%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-6.6/bin
- - spec: "quantum-espresso@6.7%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-6.7/bin
- - spec: "quantum-espresso@6.8%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-6.8/bin
- - spec: "quantum-espresso@7.0%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-7.0/bin
- - spec: "quantum-espresso@7.1%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-7.1/bin
- - spec: "quantum-espresso@7.2%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-7.2/bin
- - spec: "quantum-espresso@7.3%fj@4.10.0 arch=linux-rhel8-a64fx"
- prefix: /vol0004/apps/opt/qe-7.3/bin
buildable: False
autoconf:
externals:
- spec: "autoconf@2.69 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "autoconf@2.69 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "autoconf@2.69 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
automake:
externals:
- spec: "automake@1.16.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "automake@1.16.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "automake@1.16.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
binutils:
externals:
- spec: "binutils@2.30 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "binutils@2.30 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "binutils@2.30 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
bzip2:
externals:
- spec: "bzip2@1.0.6 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "bzip2@1.0.6 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "bzip2@1.0.6 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
curl:
externals:
- spec: "curl@7.61.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "curl@7.61.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "curl@7.61.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
dbus:
externals:
- spec: "dbus@1.12.8 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "dbus@1.12.8 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "dbus@1.12.8 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
elfutils:
externals:
- - spec: "elfutils@0.186 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "elfutils@0.182 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "elfutils@0.182 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "elfutils@0.182 arch=linux-rhel8-skylake_avx512"
+ - spec: "elfutils@0.188 arch=linux-rhel8-a64fx"
prefix: /usr
expat:
externals:
- spec: "expat@2.2.5 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "expat@2.2.5 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "expat@2.2.5 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
findutils:
externals:
- spec: "findutils@4.6.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "findutils@4.6.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "findutils@4.6.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
fontconfig:
externals:
- spec: "fontconfig@2.13.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "fontconfig@2.13.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "fontconfig@2.13.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
freetype:
externals:
- spec: "freetype@2.9.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "freetype@2.9.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "freetype@2.9.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
gmake:
externals:
- spec: "gmake@4.2.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "gmake@4.2.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "gmake@4.2.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
gdbm:
externals:
- spec: "gdbm@1.18 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "gdbm@1.18 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "gdbm@1.18 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
gettext:
externals:
- spec: "gettext@0.19.8.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "gettext@0.19.8.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "gettext@0.19.8.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
gmp:
externals:
- spec: "gmp@6.1.2 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "gmp@6.1.2 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "gmp@6.1.2 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
gnutls:
externals:
- spec: "gnutls@3.6.16 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "gnutls@3.6.14 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "gnutls@3.6.14 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "gnutls@3.6.14 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
hwloc:
externals:
- spec: "hwloc@2.2.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "hwloc@2.2.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "hwloc@2.2.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
jansson:
externals:
- spec: "jansson@2.14 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "jansson@2.11 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "jansson@2.11 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libaio:
externals:
- spec: "libaio@0.3.112 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libaio@0.3.112 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libaio@0.3.112 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libcap:
externals:
- spec: "libcap@2.48 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libcap@2.26 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libcap@2.26 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libdrm:
externals:
- - spec: "libdrm@2.4.108 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "libdrm@2.4.103 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "libdrm@2.4.103 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libdrm@2.4.103 arch=linux-rhel8-skylake_avx512"
+ - spec: "libdrm@2.4.114 arch=linux-rhel8-a64fx"
prefix: /usr
libedit:
externals:
- spec: "libedit@3.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libedit@3.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libedit@3.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libevent:
externals:
- spec: "libevent@2.1.8 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libevent@2.1.8 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libevent@2.1.8 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libfabric:
externals:
- spec: "libfabric@1.14.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libfabric@1.11.2 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libfabric@1.11.2 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libffi:
externals:
- spec: "libffi@3.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libffi@3.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libffi@3.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libglvnd:
externals:
- spec: "libglvnd@1.3.4 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libglvnd@1.3.2 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libglvnd@1.3.2 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
- libibumad:
- externals:
- - spec: "libibumad@37.2 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "libibumad@32.0 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "libibumad@54mlnx1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libibumad@54mlnx1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libpciaccess:
externals:
- spec: "libpciaccess@0.14 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libpciaccess@0.14 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libpciaccess@0.14 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libpng:
externals:
- spec: "libpng@1.6.34 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libpng@1.6.34 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libpng@1.6.34 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libtasn1:
externals:
- spec: "libtasn1@4.13 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libtasn1@4.13 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libtasn1@4.13 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libtirpc:
externals:
- spec: "libtirpc@1.1.4 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libtirpc@1.1.4 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libtirpc@1.1.4 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libtool:
externals:
- spec: "libtool@2.4.6 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libtool@2.4.6 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libtool@2.4.6 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libuuid:
externals:
- spec: "libuuid@2.32.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libuuid@2.32.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libuuid@2.32.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libxcb:
externals:
- spec: "libxcb@1.13.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libxcb@1.13.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libxcb@1.13.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libxkbcommon:
externals:
- spec: "libxkbcommon@0.9.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libxkbcommon@0.9.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libxkbcommon@0.9.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
libxml2:
externals:
- spec: "libxml2@2.9.7 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "libxml2@2.9.7 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "libxml2@2.9.7 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
lz4:
externals:
- spec: "lz4@1.8.3 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "lz4@1.8.3 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "lz4@1.8.3 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
m4:
externals:
- spec: "m4@1.4.18 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "m4@1.4.18 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "m4@1.4.18 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
ncurses:
externals:
- spec: "ncurses@6.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "ncurses@6.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "ncurses@6.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
nettle:
externals:
- spec: "nettle@3.4.1 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "nettle@3.4.1 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "nettle@3.4.1 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
nspr:
externals:
- - spec: "nspr@4.32.0 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "nspr@4.25.0 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "nspr@4.25.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "nspr@4.25.0 arch=linux-rhel8-skylake_avx512"
+ - spec: "nspr@4.34.0 arch=linux-rhel8-a64fx"
prefix: /usr
numactl:
externals:
- spec: "numactl@2.0.12 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "numactl@2.0.12 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "numactl@2.0.12 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
opengl:
buildable: False
externals:
@@ -467,114 +215,51 @@ packages:
externals:
- spec: "openssl@1.1.1k arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "openssl@1.1.1g arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "openssl@1.1.1k arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "openssl@1.1.1k arch=linux-rhel8-skylake_avx512"
- prefix: /usr
papi:
externals:
- spec: "papi@5.6.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "papi@5.6.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "papi@5.6.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
pcre:
externals:
- spec: "pcre@8.42 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "pcre@8.42 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "pcre@8.42 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
perl:
externals:
- spec: "perl@5.26.3 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "perl@5.26.3 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "perl@5.26.3 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
pkgconf:
externals:
- spec: "pkgconf@1.4.2 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "pkgconf@1.4.2 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "pkgconf@1.4.2 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
popt:
externals:
- spec: "popt@1.18 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "popt@1.18 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "popt@1.18 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
readline:
externals:
- spec: "readline@7.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "readline@7.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "readline@7.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
sqlite:
externals:
- spec: "sqlite@3.26.0 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "sqlite@3.26.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "sqlite@3.26.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
tcl:
externals:
- spec: "tcl@8.6.8 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "tcl@8.6.8 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "tcl@8.6.8 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
- ucx:
- externals:
- - spec: "ucx@1.11.2 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "ucx@1.9.0 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "ucx@1.11.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "ucx@1.11.0 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
valgrind:
externals:
- - spec: "valgrind@3.18.1 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "valgrind@3.16.0 arch=linux-rhel8-a64fx"
- prefix: /usr
- - spec: "valgrind@3.16.0 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "valgrind@3.16.0 arch=linux-rhel8-skylake_avx512"
+ - spec: "valgrind@3.19.0 arch=linux-rhel8-a64fx"
prefix: /usr
xz:
externals:
- spec: "xz@5.2.4 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "xz@5.2.4 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "xz@5.2.4 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
zlib:
externals:
- spec: "zlib@1.2.11 arch=linux-rhel8-a64fx"
prefix: /usr
- - spec: "zlib@1.2.11 arch=linux-rhel8-cascadelake"
- prefix: /usr
- - spec: "zlib@1.2.11 arch=linux-rhel8-skylake_avx512"
- prefix: /usr
buildable: False
- # pmlib: had problems with spack. so far binary packages only. 2023/3/20 mikami
pmlib:
externals:
- spec: "pmlib@9.0-clang-precise arch=linux-rhel8-a64fx"
diff --git a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/spack.yaml b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/spack.yaml
index 81facd979..49212d2d8 100644
--- a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/spack.yaml
+++ b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/spack.yaml
@@ -6,20 +6,31 @@
spack:
packages:
default-compiler:
- spack_spec: fj@{default_fj_version}
- default-mpi:
- spack_spec: fujitsu-mpi@{default_fj_version}%fj arch=linux-rhel8-a64fx
- compiler-gcc:
+ #spack_spec: fj@{default_fj_version}
+ #spack_spec: clang@{default_llvm_version}
spack_spec: gcc@{default_gnu_version}
+ default-mpi:
+ spack_spec: fujitsu-mpi@{default_fj_version} arch=linux-rhel8-a64fx
compiler-fujitsu:
spack_spec: fj@{default_fj_version}
+ compiler-clang:
+ spack_spec: clang@{default_llvm_version}
+ compiler-gcc:
+ spack_spec: gcc@{default_gnu_version}
blas:
- spack_spec: fujitsu-ssl2@head%fj arch=linux-rhel8-a64fx
+ spack_spec: fujitsu-ssl2@{default_fj_version} arch=linux-rhel8-a64fx
lapack:
- spack_spec: fujitsu-ssl2@head%fj arch=linux-rhel8-a64fx
- mpi-gcc:
- spack_spec: fujitsu-mpi@head%gcc@{default_gnu_version} arch=linux-rhel8-a64fx
+ spack_spec: fujitsu-ssl2@{default_fj_version} arch=linux-rhel8-a64fx
+ fftw:
+ spack_spec: fujitsu-ssl2@{default_fj_version} arch=linux-rhel8-a64fx
mpi-fujitsu:
- spack_spec: fujitsu-mpi@{default_fj_version}%fj arch=linux-rhel8-a64fx
+ spack_spec: fujitsu-mpi@{default_fj_version} arch=linux-rhel8-a64fx
+ mpi-clang:
+ spack_spec: fujitsu-mpi@{default_fj_version} arch=linux-rhel8-a64fx
+ mpi-gcc:
+ spack_spec: fujitsu-mpi@{default_fj_version} arch=linux-rhel8-a64fx
gmake:
spack_spec: gmake@4.2.1 arch=linux-rhel8-a64fx
+ cmake:
+ spack_spec: cmake@3.20.2 arch=linux-rhel8-a64fx
+
diff --git a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/variables.yaml b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/variables.yaml
index b4db683c2..abb7ba2f0 100644
--- a/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/variables.yaml
+++ b/configs/RCCS-Fugaku-Fujitsu-A64FX-TofuD/variables.yaml
@@ -11,4 +11,6 @@ variables:
batch_ranks: '#PJM --mpi proc={n_ranks}'
batch_timeout: '#PJM -L "elapse={batch_time}:00" -x PJM_LLIO_GFSCACHE="/vol0001:/vol0002:/vol0003:/vol0004:/vol0005:/vol0006"'
default_fj_version: '4.8.1'
+ default_llvm_version: '15.0.3'
default_gnu_version: '12.2.0'
+
diff --git a/experiments/lbann/cuda/execute_experiment.tpl b/configs/common/spack_includes.yaml
old mode 100755
new mode 100644
similarity index 67%
rename from experiments/lbann/cuda/execute_experiment.tpl
rename to configs/common/spack_includes.yaml
index 1e2ea813e..62cc2ea5a
--- a/experiments/lbann/cuda/execute_experiment.tpl
+++ b/configs/common/spack_includes.yaml
@@ -3,11 +3,7 @@
#
# SPDX-License-Identifier: Apache-2.0
-#!/bin/bash
-{batch_nodes}
-{batch_ranks}
-{batch_timeout}
-
-cd {experiment_run_dir}
-
-{command}
+packages:
+ blt:
+ require:
+ - one_of: ["%gcc", "%clang"]
diff --git a/docs/1-getting-started.rst b/docs/1-getting-started.rst
index 9b26b4dca..b736cc6f4 100644
--- a/docs/1-getting-started.rst
+++ b/docs/1-getting-started.rst
@@ -12,6 +12,14 @@ Git is needed to clone Benchpark, and Python 3.8+ is needed to run Benchpark::
git clone git@github.com:LLNL/benchpark.git
cd benchpark
+Once Benchpark is available on your system, its python dependencies can be
+installed using the ``requirements.txt`` file included in the root directory of
+Benchpark.
+
+To install this, you can use::
+
+ pip install -r requirements.txt
+
Now you are ready to look at the benchmarks and systems available in Benchpark,
as described in :doc:`2-benchpark-list`.
diff --git a/docs/2-benchpark-list.rst b/docs/2-benchpark-list.rst
index 90cb5f6a4..29f03f084 100644
--- a/docs/2-benchpark-list.rst
+++ b/docs/2-benchpark-list.rst
@@ -3,14 +3,43 @@
SPDX-License-Identifier: Apache-2.0
-==============
-Benchpark List
-==============
+================
+Search Benchpark
+================
-To list all benchmarks and systems available in Benchpark::
+The user can search for available system and experiment specifications in Benchpark.
+
+.. list-table:: Searching for specifications in Benchpark
+ :widths: 25 25 50
+ :header-rows: 1
+
+ * - Command
+ - Description
+ - Listing in the docs
+ * - benchpark list
+ - Lists all benchmarks and systems specified in Benchpark
+ -
+ * - benchpark list systems
+ - Lists all system specified in Benchpark
+ - :doc:`available-system-specs`
+ * - benchmark list benchmarks
+ - Lists all benchmarks specified in Benchpark
+ -
+ * - benchpark list systems
+ - Lists all system specified in Benchpark
+ - :doc:`available-system-specs`
+ * - benchpark tags workspace
+ - Lists all tags specified in Benchpark
+ -
+ * - benchpark tags -a application workspace
+ - Lists all tags specified for a given application in Benchpark
+ -
+ * - benchpark tags -t tag workspace
+ - Lists all experiments in Benchpark with a given tag
+ -
- cd bin
- benchpark list
Once you have decided on a ``system`` you will use, and the ``benchmark/ProgrammingModel``
to run, you can proceed to :doc:`4-benchpark-setup`.
+
+For a complete list of options, see the help menu in :doc:`benchpark-help`.
diff --git a/docs/Makefile b/docs/Makefile
index 5f3bbf02d..75eff50de 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -7,6 +7,7 @@ SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
+WORKSPACE_PATH ?=
# Put it first so that "make" without argument is like "make help".
help:
@@ -15,7 +16,10 @@ help:
systemconfigs:
./generate-sys-defs-list.py
-.PHONY: help sysconfigs Makefile
+tags:
+ ./generate-benchmark-list.py $(WORKSPACE_PATH)
+
+.PHONY: help systemconfigs tags Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css
index 8aa6c288f..3040dcdeb 100644
--- a/docs/_static/css/custom.css
+++ b/docs/_static/css/custom.css
@@ -1,3 +1,87 @@
+a {
+ color: #6a984e
+}
+
+a:hover {
+ color: #7fa866
+}
+
+a:visited {
+ color: #9b59b6
+}
+
.wy-nav-content {
max-width: 1200px !important;
}
+
+.wy-side-nav-search, .wy-nav-top {
+ background: #7fa866
+}
+
+.wy-nav .wy-menu-vertical header {
+ color: #7fa866
+}
+
+.wy-menu-vertical a {
+ color:#d9d9d9
+}
+
+.wy-nav .wy-menu-vertical a:hover {
+ background-color: #7fa866
+}
+
+.wy-menu-vertical header, .wy-menu-vertical p.caption {
+ color: #a1ca7b
+}
+
+.wy-nav-top {
+ background: #7fa866
+}
+
+.rst-content .wy-alert-neutral.admonition-todo a, .rst-content .wy-alert-neutral.admonition a, .rst-content .wy-alert-neutral.attention a, .rst-content .wy-alert-neutral.caution a, .rst-content .wy-alert-neutral.danger a, .rst-content .wy-alert-neutral.error a, .rst-content .wy-alert-neutral.hint a, .rst-content .wy-alert-neutral.important a, .rst-content .wy-alert-neutral.note a, .rst-content .wy-alert-neutral.seealso a, .rst-content .wy-alert-neutral.tip a, .rst-content .wy-alert-neutral.warning a, .wy-alert.wy-alert-neutral a {
+ color: #7fa866
+}
+
+.wy-tray-container li.wy-tray-item-info {
+ background: #7fa866
+}
+
+.btn-info {
+ background-color: #7fa866 !important
+}
+
+.btn-link {
+ color: #7fa866;
+}
+
+.wy-dropdown-menu > dd > a:hover {
+ background: #7fa866
+}
+
+.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover {
+ background: #7fa866
+}
+
+.wy-inline-validate.wy-inline-validate-info .wy-input-context {
+ color: #7fa866
+}
+
+.wy-text-info {
+ color:#7fa866 !important
+}
+
+.wy-side-nav-search {
+ background-color: #7fa866
+}
+
+.wy-side-nav-search input[type=text] {
+ border-color: #7fa866
+}
+
+.wy-side-nav-search img {
+ background-color: #7fa866
+}
+
+html.writer-html4 .rst-content dl:not(.docutils) > dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) > dt {
+ color: #7fa866
+}
diff --git a/docs/_static/images/benchpark-dark.svg b/docs/_static/images/benchpark-dark.svg
new file mode 100644
index 000000000..6c3035007
--- /dev/null
+++ b/docs/_static/images/benchpark-dark.svg
@@ -0,0 +1,326 @@
+
+
+
+
diff --git a/docs/_static/images/benchpark-icon-background.svg b/docs/_static/images/benchpark-icon-background.svg
new file mode 100644
index 000000000..6e9977134
--- /dev/null
+++ b/docs/_static/images/benchpark-icon-background.svg
@@ -0,0 +1,264 @@
+
+
+
+
diff --git a/docs/_static/images/benchpark-icon.svg b/docs/_static/images/benchpark-icon.svg
new file mode 100644
index 000000000..459e49949
--- /dev/null
+++ b/docs/_static/images/benchpark-icon.svg
@@ -0,0 +1,329 @@
+
+
+
+
diff --git a/docs/_static/images/benchpark-light.svg b/docs/_static/images/benchpark-light.svg
new file mode 100644
index 000000000..c1111f72c
--- /dev/null
+++ b/docs/_static/images/benchpark-light.svg
@@ -0,0 +1,457 @@
+
+
+
+
diff --git a/docs/available-system-specs.rst b/docs/available-system-specs.rst
index 131025eae..bf483911a 100644
--- a/docs/available-system-specs.rst
+++ b/docs/available-system-specs.rst
@@ -13,6 +13,6 @@ use as the ``system`` parameter in Benchpark setup. See
:doc:`4-benchpark-setup` for more details.
.. csv-table:: Current system definitions in Benchpark.
- :file: tables/current-system-definitions.csv
+ :file: current-system-definitions.csv
:header-rows: 1
:align: left
diff --git a/docs/benchmark-list.rst b/docs/benchmark-list.rst
new file mode 100644
index 000000000..5ab06ab25
--- /dev/null
+++ b/docs/benchmark-list.rst
@@ -0,0 +1,13 @@
+.. 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
+
+==============
+Benchmark List
+==============
+
+.. csv-table:: Current Benchpark tags by benchmark and tag groups.
+ :file: benchmark-list.csv
+ :header-rows: 1
+ :align: left
diff --git a/docs/benchpark-help.rst b/docs/benchpark-help.rst
new file mode 100644
index 000000000..344beede4
--- /dev/null
+++ b/docs/benchpark-help.rst
@@ -0,0 +1,14 @@
+.. 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
+
+===================
+Benchpark Help Menu
+===================
+
+Benchpark help menu::
+
+ $ benchpark --help
+
+.. program-output:: ../bin/benchpark --help
diff --git a/docs/conf.py b/docs/conf.py
index 5f7555c7a..5267a063e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -15,6 +15,13 @@
]
)
+subprocess.call(
+ [
+ "make",
+ "tags",
+ ]
+)
+
project = "Benchpark"
copyright = "2023, LLNS LLC"
author = "Olga Pearce, Alec Scott, Peter Scheibel, Greg Becker, Riyaz Haque, and Nathan Hanford"
@@ -24,6 +31,7 @@
extensions = [
"sphinx_rtd_theme",
+ "sphinxcontrib.programoutput",
]
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", ".spack-env"]
@@ -34,3 +42,5 @@
html_theme = "sphinx_rtd_theme"
html_static_path = ["_static"]
html_css_files = ["css/custom.css"]
+html_logo = "_static/images/benchpark-dark.svg"
+html_theme_options = {"logo_only": True}
diff --git a/docs/generate-benchmark-list.py b/docs/generate-benchmark-list.py
new file mode 100755
index 000000000..391604a68
--- /dev/null
+++ b/docs/generate-benchmark-list.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python3
+
+import pandas as pd
+import yaml
+import os
+import sys
+import subprocess
+
+
+def construct_tag_groups(tag_groups, tag_dicts, dictionary):
+ # everything is a dict
+ for k, v in dictionary.items():
+ if isinstance(v, list):
+ tag_groups.append(k)
+ tag_dicts[k] = v
+ else:
+ print("ERROR in construct_tag_groups")
+
+
+def benchpark_benchmarks(benchmarks):
+ experiments_dir = "../experiments"
+ for x in os.listdir(experiments_dir):
+ benchmarks.append(f"{x}")
+ return benchmarks
+
+
+def main(workspace):
+ benchmarks = list()
+ benchpark_benchmarks(benchmarks)
+
+ f = "../tags.yaml"
+ with open(f, "r") as stream:
+ try:
+ data = yaml.safe_load(stream)
+ except yaml.YAMLError as exc:
+ print(exc)
+
+ tag_groups = []
+ tag_dicts = {}
+ for k, v in data.items():
+ if k == "benchpark-tags":
+ construct_tag_groups(tag_groups, tag_dicts, v)
+ else:
+ print("ERROR in top level construct_tag_groups")
+
+ main = dict()
+
+ tags_taggroups = {}
+ for bmark in benchmarks:
+ tags_taggroups[bmark] = {}
+ for k, v in tag_dicts.items():
+ tags_taggroups[bmark][k] = []
+
+ for bmark in benchmarks:
+ # call benchpark tags -a bmark workspace
+ cmd = ["../bin/benchpark", "tags", "-a", bmark, workspace]
+ byte_data = subprocess.run(cmd, capture_output=True)
+ tags = str(byte_data.stdout, "utf-8")
+ tags = (
+ tags.replace("[", "")
+ .replace("]", "")
+ .replace("'", "")
+ .replace(" ", "")
+ .replace("\n", "")
+ .split(",")
+ )
+ for t in tags:
+ for k, v in tag_dicts.items():
+ if t in v:
+ print("appending", t, "at key", k)
+ tags_taggroups[bmark][k].append(t)
+ main[bmark] = tags_taggroups[bmark]
+
+ df = pd.DataFrame(main)
+ df.to_csv("benchmark-list.csv")
+
+ #################
+ # Tables
+ # columns: benchmarks (i.e., amg2023)
+ # rows: tag groups (i.e., application domain). Each cell should hopefully have a tag - and some might have multiple
+
+
+if __name__ == "__main__":
+ try:
+ workspace = sys.argv[1]
+ except IndexError:
+ print("Usage: " + os.path.basename(__file__) + " ")
+ sys.exit(1)
+
+ main(workspace)
diff --git a/docs/generate-sys-defs-list.py b/docs/generate-sys-defs-list.py
index f96cce0c4..028affacc 100755
--- a/docs/generate-sys-defs-list.py
+++ b/docs/generate-sys-defs-list.py
@@ -68,7 +68,7 @@ def main():
df_tpose.set_index([""], inplace=True)
# Write out current system definitions to CSV format
- df_tpose.to_csv("tables/current-system-definitions.csv")
+ df_tpose.to_csv("current-system-definitions.csv")
if __name__ == "__main__":
diff --git a/docs/index.rst b/docs/index.rst
index 8c4bf657f..605b44009 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -21,9 +21,12 @@
.. toctree::
:maxdepth: 1
- :caption: Available Specifications
+ :caption: Catalogue
+ catalogue-of-benchmarks
available-system-specs
+ benchmark-list
+ benchpark-help
.. toctree::
:maxdepth: 1
diff --git a/docs/tables/current-system-definitions.csv b/docs/tables/current-system-definitions.csv
deleted file mode 100644
index 38c574238..000000000
--- a/docs/tables/current-system-definitions.csv
+++ /dev/null
@@ -1,20 +0,0 @@
-,Sierra,AWS_PCluster_Hpc7a-zen4-EFA,HPECray-zen3-MI250X-Slingshot,Magma,Piz Daint,Fugaku,Pascal,Eiger,LUMI,Tioga,x86_64
-**site**,LLNL,,,LLNL,CSCS,RIKEN Center for Computational Science,LLNL,CSCS,CSC,LLNL,
-**system**,IBM-power9-V100-Infiniband,AWS_PCluster_Hpc7a-zen4-EFA,HPECray-zen3-MI250X-Slingshot,Penguin-icelake-OmniPath,HPECray-haswell-P100-Infiniband,Fujitsu-A64FX-TofuD,Penguin-broadwell-P100-OmniPath,HPECray-zen2-Slingshot,HPECray-zen3-MI250X-Slingshot,HPECray-zen3-MI250X-Slingshot,x86_64
-**integrator.vendor**,IBM,AWS,HPECray,PenguinComputing,HPECray,Fujitsu,Penguin,HPECray,HPECray,HPECray,
-**integrator.name**,AC922,ParallelCluster3.7.2-Hpc7a,EX235a,RelionCluster,,FX1000,,,EX235a,EX235a,
-**processor.vendor**,IBM,AMD,AMD,Intel,Intel,Fujitsu,Intel,AMD,AMD,AMD,
-**processor.name**,POWER9,EPYC-Zen4,EPYC-Zen3,XeonPlatinum924248C,Xeon-E5-2650v3,A64FX,Xeon_E5-2695_v4,EPYC-7742,EPYC-Zen3,EPYC-Zen3,
-**processor.ISA**,ppc64le,x86_64,x86_64,x86_64,x86_64,Armv8.2-A-SVE,x86_64,x86_64,x86_64,x86_64,x86_64
-**processor.uArch**,power9,zen4,zen3,icelake,haswell,aarch64,broadwell,zen2,zen3,zen3,
-**accelerator.vendor**,NVIDIA,,AMD,,NVIDIA,,NVIDIA,,AMD,AMD,
-**accelerator.name**,V100,,MI250X,,P100,,P100,,MI250X,MI250X,
-**accelerator.ISA**,PTX,,GCN,,PTX,,PTX,,GCN,GCN,
-**accelerator.uArch**,sm_70,,gfx90a,,sm_60,,sm_56,,gfx90a,gfx90a,
-**interconnect.vendor**,Mellanox,AWS,HPECray,Intel,HPECray,Fujitsu,Cornelis,HPECray,HPECray,HPECray,
-**interconnect.name**,EDR-Infiniband,EFA,Slingshot11,OmniPath,Aries,TofuInterconnectD,OmniPath,Slingshot,Slingshot11,Slingshot11,
-**system-tested.site**,LLNL,AWS,LLNL,LLNL,CSCS,R-CCS,LLNL,CSCS,CSC,LLNL,
-**system-tested.name**,lassen,,tioga,magma,daint,Fugaku,pascal,daint,LUMI,tioga,
-**system-tested.installation-year**,2018,,2022,2019,2017,2020,2018,2017,2023,2022,
-**system-tested.description**,`top500 `_,`aws/hpc7a `_,`top500 `_,`top500 `_,`top500 `_,`top500 `_,,`top500 `_,`top500 `_,`top500 `_,
-**top500-system-instances**,Sierra (LLNL),,"Frontier (ORNL), LUMI (CSC), Tioga (LLNL)",Magma (LLNL),Piz Daint (CSCS),Fugaku (R-CCS),,,"Frontier (ORNL), LUMI (CSC), Tioga (LLNL)","Frontier (ORNL), LUMI (CSC), Tioga (LLNL)",
diff --git a/experiments/lbann/cuda/ramble.yaml b/experiments/lbann/cuda/ramble.yaml
deleted file mode 100644
index 027481554..000000000
--- a/experiments/lbann/cuda/ramble.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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
-
-ramble:
- include:
- - ./configs/spack.yaml
- - ./configs/variables.yaml
-
- config:
- deprecated: true
- spack_flags:
- install: '--add --keep-stage'
- concretize: '-U -f'
-
- applications:
- lbann:
- workloads:
- problem1:
- env_vars:
- set:
- OMP_NUM_THREADS: '{omp_num_threads}'
- variables:
- n_ranks: '{processes_per_node} * {n_nodes}'
- p: 2
- px: '{p}'
- py: '{p}'
- pz: '{p}'
- n: ['55', '110']
- nx: '{n}'
- ny: '{n}'
- nz: '{n}'
- processes_per_node: ['8', '4']
- n_nodes: ['1', '2']
- threads_per_node_core: ['8', '10', '13'] #TODO: Specify n_threads according to available n_nodes and n_ranks
- omp_num_threads: '{threads_per_node_core} * {n_nodes}'
- experiments:
- lbann_omp_problem1_{n_nodes}_{omp_num_threads}_{px}_{py}_{pz}_{nx}_{ny}_{nz}:
- variables:
- env_name: amg2023-omp
- matrices:
- - size_threads:
- - n # TODO: Filter matrix
- - threads_per_node_core # TODO: Filter matrix
- spack:
- concretized: true
- packages:
- lbann-cuda:
- spack_spec: lbann@develop +mpi+cuda
- compiler: default-compiler
- environments:
- amg2023-omp:
- packages:
- - default-mpi
- - lbann-cuda
diff --git a/experiments/raja-perf/cuda/ramble.yaml b/experiments/raja-perf/cuda/ramble.yaml
index c66eddfb0..070d4f1c1 100644
--- a/experiments/raja-perf/cuda/ramble.yaml
+++ b/experiments/raja-perf/cuda/ramble.yaml
@@ -26,15 +26,11 @@ ramble:
spack:
concretized: true
packages:
- blt:
- spack_spec: 'blt@0.5.2:'
- compiler: compiler-gcc
raja-perf:
spack_spec: raja-perf@develop +cuda~openmp+mpi cuda_arch=={cuda_arch} ^cuda@{default_cuda_version}
compiler: default-compiler
environments:
raja-perf:
packages:
- - blt
- default-mpi
- raja-perf
diff --git a/experiments/raja-perf/openmp/ramble.yaml b/experiments/raja-perf/openmp/ramble.yaml
index 648952a40..7e734d177 100644
--- a/experiments/raja-perf/openmp/ramble.yaml
+++ b/experiments/raja-perf/openmp/ramble.yaml
@@ -32,15 +32,11 @@ ramble:
spack:
concretized: true
packages:
- blt:
- spack_spec: 'blt@0.5.2:'
- compiler: compiler-gcc
raja-perf:
spack_spec: raja-perf@develop +openmp +mpi ^cmake@3.23.1
compiler: default-compiler
environments:
raja-perf:
packages:
- - blt
- default-mpi
- raja-perf
diff --git a/experiments/raja-perf/rocm/ramble.yaml b/experiments/raja-perf/rocm/ramble.yaml
index 925003c92..ac43c0899 100644
--- a/experiments/raja-perf/rocm/ramble.yaml
+++ b/experiments/raja-perf/rocm/ramble.yaml
@@ -27,15 +27,11 @@ ramble:
spack:
concretized: true
packages:
- blt:
- spack_spec: 'blt@0.5.2:'
- compiler: compiler-gcc
raja-perf:
spack_spec: raja-perf@develop +rocm~openmp amdgpu_target={rocm_arch}
compiler: default-compiler
environments:
raja-perf:
packages:
- - blt
- default-mpi
- raja-perf
diff --git a/experiments/stream/openmp/execute_experiment.tpl b/experiments/streamc/openmp/execute_experiment.tpl
similarity index 100%
rename from experiments/stream/openmp/execute_experiment.tpl
rename to experiments/streamc/openmp/execute_experiment.tpl
diff --git a/experiments/stream/openmp/ramble.yaml b/experiments/streamc/openmp/ramble.yaml
similarity index 100%
rename from experiments/stream/openmp/ramble.yaml
rename to experiments/streamc/openmp/ramble.yaml
diff --git a/pyproject.toml b/pyproject.toml
index f787664d9..bc919dd96 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -31,5 +31,5 @@ skip_gitignore = true
color_output = true
[tool.codespell]
-skip = './_build,./docs/_static'
+skip = './docs/_build,./docs/_static'
ignore-words-list = 'fom'
diff --git a/repo/amg2023/application.py b/repo/amg2023/application.py
index 0c8cc3d80..442df30e9 100644
--- a/repo/amg2023/application.py
+++ b/repo/amg2023/application.py
@@ -12,7 +12,12 @@ class Amg2023(SpackApplication):
"""AMG2023 benchmark"""
name = "amg2023"
- tags = ["amg2023"]
+ tags = ['asc','engineering','hypre','solver','sparse-linear-algebra',
+ 'large-scale','multi-node','single-node','sub-node',
+ 'high-branching','high-memory-bandwidth','large-memory-footprint',
+ 'regular-memory-access','irregular-memory-access','mixed-precision',
+ 'mpi','network-latency-bound','network-collectives','block-structured-grid',
+ 'c','cuda','hip','openmp']
executable('p1', 'amg' +
' -P {px} {py} {pz}' +
diff --git a/repo/lbann/application.py b/repo/lbann/application.py
deleted file mode 100644
index 4d87357bc..000000000
--- a/repo/lbann/application.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# 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
-
-import sys
-
-from ramble.appkit import *
-
-
-class LBANN(SpackApplication):
- """LBANN benchmark"""
- name = "lbann"
-
- tags = ["lbann"]
-
- executable('p1', 'lbann' +
- ' -P {px} {py} {pz}' +
- ' -n {nx} {ny} {nz}' +
- ' -problem 1' +
- ' -keepT', use_mpi=True)
-
- executable('p2', 'lbann' +
- ' -P {px} {py} {pz}' +
- ' -n {nx} {ny} {nz}' +
- ' -problem 2' +
- ' -keepT', use_mpi=True)
-
- workload('problem1', executables=['p1'])
- workload('problem2', executables=['p2'])
-
- workload_variable('px', default='2',
- description='px',
- workloads=['problem1', 'problem2'])
- workload_variable('py', default='2',
- description='py',
- workloads=['problem1', 'problem2'])
- workload_variable('pz', default='2',
- description='pz',
- workloads=['problem1', 'problem2'])
- workload_variable('nx', default='220',
- description='nx',
- workloads=['problem1', 'problem2'])
- workload_variable('ny', default='220',
- description='ny',
- workloads=['problem1', 'problem2'])
- workload_variable('nz', default='220',
- description='nz',
- workloads=['problem1', 'problem2'])
-
- figure_of_merit('Figure of Merit (FOM)', log_file='{experiment_run_dir}/{experiment_name}.out', fom_regex=r'Figure of Merit \(FOM\):\s+(?P[0-9]+\.[0-9]*(e^[0-9]*)?)', group_name='fom', units='')
-
- #TODO: Fix the FOM success_criteria(...)
- success_criteria('pass', mode='string', match=r'Figure of Merit \(FOM\)', file='{experiment_run_dir}/{experiment_name}.out')
-
- def evaluate_success(self):
- return True
diff --git a/repo/raja-perf/application.py b/repo/raja-perf/application.py
index 6d028a275..682d355d0 100644
--- a/repo/raja-perf/application.py
+++ b/repo/raja-perf/application.py
@@ -12,7 +12,11 @@ class RajaPerf(SpackApplication):
"""RAJA Performance suite"""
name = "raja-perf"
- tags = ["raja-perf"]
+ tags = ['asc','single-node','sub-node','structured-grid',
+ 'atomics','simd','vectorization','register-pressure',
+ 'high-memory-bandwidth','regular-memory-access',
+ 'mpi','network-point-to-point','network-latency-bound',
+ 'c++','raja','cuda','hip','openmp','sycl']
executable('run', 'raja-perf.exe', use_mpi=True)
diff --git a/repo/saxpy/application.py b/repo/saxpy/application.py
index 0fd12db01..14385b391 100644
--- a/repo/saxpy/application.py
+++ b/repo/saxpy/application.py
@@ -12,7 +12,9 @@ class Saxpy(SpackApplication):
"""saxpy benchmark"""
name = "saxpy"
- tags = ["saxpy"]
+ tags = ['single-node','high-memory-bandwidth',
+ 'regular-memory-access',
+ 'c++','cuda','hip','openmp']
executable('p', 'saxpy -n {n}', use_mpi=True)
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 000000000..5a20fb83f
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,16 @@
+pyyaml
+# The remaining requirements are from Ramble
+pytest
+flake8
+google-cloud-storage # for gcs fetch test
+google-api-core # for gcs fetch error .exceptions
+coverage
+pre-commit
+graphlib-backport;python_version<"3.9"
+urllib3==1.26.18;python_version<="3.6"
+protobuf;python_version>"3.6"
+protobuf==3.19.4;python_version<="3.6"
+pyarrow==3.0.0;python_version<="3.6"
+google-cloud-bigquery
+tqdm
+deprecation
diff --git a/tags.yaml b/tags.yaml
new file mode 100644
index 000000000..423d71bae
--- /dev/null
+++ b/tags.yaml
@@ -0,0 +1,109 @@
+# 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
+
+benchpark-tags:
+ application-domain:
+ - asc # Advanced Simulation and Computing
+ - astrophysics
+ - cfd # computational fluid dynamics
+ - chemistry
+ - climate
+ - dft # density functional theory
+ - engineering
+ - fusion
+ - material-science
+ - molecular-dynamics
+ benchmark-scale:
+ - large-scale
+ - multi-node
+ - single-node
+ - sub-node
+ communication:
+ - mpi
+ - nccl
+ - nvsmem
+ - rccl
+ - shmem
+ - upc
+ communication-performance-characteristics:
+ - network-bandwidth-bound
+ - network-bisection-bandwidth-bound
+ - network-collectives
+ - network-latency-bound
+ - network-point-to-point
+ compute-performance-characteristics:
+ - atomics
+ - high-branching
+ - high-fp
+ - i-o
+ - mixed-precision
+ - register-pressure
+ - simd
+ - vectorization
+ math-libraries:
+ - blas
+ - cublas
+ - hypre
+ - lapack
+ - mfem
+ - rocblas
+ - rocsolver
+ memory-access-characteristics:
+ - high-memory-bandwidth
+ - irregular-memory-access
+ - large-memory-footprint
+ - regular-memory-access
+ mesh-representation:
+ - amr
+ - block-structured-grid
+ - meshfree
+ - structured-grid
+ - unstructured-grid
+ method-type:
+ - ai # AI, ML, DL
+ - ale # arbitrary lagrangian-eulerian
+ - dense-linear-algebra
+ - deterministic
+ - direct-solve
+ - eulerian
+ - explicit-differentiation
+ - explicit-timestepping
+ - finite-element
+ - fft # fast fourier transform
+ - full-assembly
+ - high-order
+ - hydrodynamics
+ - implicit-differentiation
+ - implicit-timestepping
+ - lagrangian
+ - low-order
+ - montecarlo
+ - nbody
+ - ode # ordinary differential equations
+ - partial-assembly
+ - particles
+ - solver
+ - sph # smoothed particle hydrodynamics
+ - sparse-linear-algebra
+ - spatial-discretization
+ - task-parallelism
+ - time-dependent
+ - transport
+ programming-language:
+ - c
+ - c++
+ - fortran
+ - julia
+ - python
+ - rust
+ programming-model:
+ - charm++
+ - cuda
+ - hip
+ - kokkos
+ - oneapi
+ - openmp
+ - raja
+ - sycl