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

Initial commit of MPI-only Laghos with Sedov blast wave experiment #199

Merged
merged 23 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
21ec1e4
Initial commit of MPI-only Laghos with Sedov blast wave experiment.
wdarylhawkins Apr 15, 2024
5ce32c5
Adding custom package.py for Laghos
wdarylhawkins Apr 16, 2024
b3aab40
Updating ramble.yaml
wdarylhawkins Apr 16, 2024
7aea1e1
Temporary copyright update (will change back when upstream to spack)
pearce8 Apr 16, 2024
8d31e3a
Merge branch 'LLNL:develop' into laghos
wdhawkins Apr 16, 2024
07885c6
Update Laghos package.py to install data directory.
wdarylhawkins Apr 18, 2024
3ebe137
Merge branch 'develop' into laghos
pearce8 Apr 24, 2024
4e5d4ab
Fix FOM extraction regex
Apr 25, 2024
2f50c8c
Customizing package.py to pull and install the Caliper variant of Laghos
wdarylhawkins Apr 26, 2024
4fede43
Merge branch 'laghos' of https://github.com/wdhawkins/benchpark into …
wdarylhawkins Apr 26, 2024
41dab4a
Merge pull request #1 from rfhaque/laghos
wdhawkins Apr 26, 2024
73f8d3b
Update sspack recipe
May 3, 2024
6289c29
Force the use of lib instead of zlib-ng
May 3, 2024
0ab6bd1
Use original spack recipe
May 3, 2024
94b86b3
Merge branch 'develop' into laghos
pearce8 May 8, 2024
ff4adb4
Merge branch 'develop' into laghos
pearce8 May 15, 2024
39a378e
Adding configs for LLNL Ruby and AWS HPC6a.48xlarge. Replacing Sedov …
wdarylhawkins May 17, 2024
2ade029
Merge pull request #3 from rfhaque/laghos
wdhawkins May 17, 2024
8141cd0
Merge branch 'laghos' of https://github.com/wdhawkins/benchpark into …
wdarylhawkins May 17, 2024
bcc3ec5
Merge branch 'develop' into laghos
pearce8 May 23, 2024
968284b
Adding Ruby and HPC6a configs. Replacing Sedov experiment with 3D tri…
wdarylhawkins May 30, 2024
e7913c9
Merge branch 'laghos' of https://github.com/wdhawkins/benchpark into …
wdarylhawkins May 30, 2024
6d6e9c6
Merge branch 'develop' into laghos
pearce8 Jun 10, 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
13 changes: 13 additions & 0 deletions experiments/laghos/mpi/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
# 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

{batch_nodes}
{batch_ranks}
{batch_timeout}

cd {experiment_run_dir}

{command}
38 changes: 38 additions & 0 deletions experiments/laghos/mpi/ramble.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 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:
laghos:
workloads:
problem:
env_vars:
variables:
n_ranks: ['1', '2', '4', '8', '16', '32']
n_nodes: '1'
experiments:
laghos_mpi_sedov_{n_nodes}_{n_ranks}:
variables:
spack:
concretized: true
packages:
laghos:
spack_spec: laghos@develop +metis
compiler: default-compiler
environments:
laghos:
packages:
- default-mpi
- laghos
28 changes: 28 additions & 0 deletions repo/laghos/application.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 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 Laghos(SpackApplication):
"""Laghos benchmark"""
name = "laghos"

tags = ['asc','engineering','hypre','solver','cfd','large-scale',
'multi-node','single-node','mpi','network-latency-bound',
'network-collectives','unstructured-grid']

executable('p', 'laghos -p 1 -dim 3 -rs 2 -tf 0.6 -pa', use_mpi=True)

workload('problem', executables=['p'])

figure_of_merit('Major kernels total time',
log_file='{experiment_run_dir}/{experiment_name}.out',
fom_regex=r'Major kernels total time (seconds): (?P<num>[0-9]+)',
group_name='time', units='seconds')

success_criteria('pass', mode='string', match=r'Major kernels total time', file='{experiment_run_dir}/{experiment_name}.out')
82 changes: 82 additions & 0 deletions repo/laghos/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class Laghos(MakefilePackage):
"""Laghos (LAGrangian High-Order Solver) is a CEED miniapp that solves the
time-dependent Euler equations of compressible gas dynamics in a moving
Lagrangian frame using unstructured high-order finite element spatial
discretization and explicit high-order time-stepping.
"""

tags = ["proxy-app", "ecp-proxy-app"]

homepage = "https://computing.llnl.gov/projects/co-design/laghos"
url = "https://github.com/CEED/Laghos/archive/v1.0.tar.gz"
git = "https://github.com/CEED/Laghos.git"

maintainers("v-dobrev", "tzanio", "vladotomov")

license("BSD-2-Clause")

version("develop", branch="master")
version("3.1", sha256="49b65edcbf9732c7f6c228958620e18980c43ad8381315a8ba9957ecb7534cd5")
version("3.0", sha256="4db56286e15b42ecdc8d540c4888a7dec698b019df9c7ccb8319b7ea1f92d8b4")
version("2.0", sha256="dd3632d5558889beec2cd3c49eb60f633f99e6d886ac868731610dd006c44c14")
version("1.1", sha256="53b9bfe2af263c63eb4544ca1731dd26f40b73a0d2775a9883db51821bf23b7f")
version("1.0", sha256="af50a126355a41c758fcda335a43fdb0a3cd97e608ba51c485afda3dd84a5b34")

variant("metis", default=True, description="Enable/disable METIS support")
variant("ofast", default=False, description="Enable gcc optimization flags")

depends_on("mfem+mpi+metis", when="+metis")
depends_on("mfem+mpi~metis", when="~metis")

depends_on("mfem@develop", when="@develop")
depends_on("[email protected]:", when="@3.1")
depends_on("[email protected]:4.1", when="@3.0")
# Recommended mfem version for laghos v2.0 is: ^[email protected]
depends_on("[email protected]", when="@2.0")
# Recommended mfem version for laghos v1.x is: ^[email protected]
depends_on("[email protected]", when="@1.0,1.1")

# Replace MPI_Session
patch(
"https://github.com/CEED/Laghos/commit/c800883ab2741c8c3b99486e7d8ddd8e53a7cb95.patch?full_index=1",
sha256="e783a71c3cb36886eb539c0f7ac622883ed5caf7ccae597d545d48eaf051d15d",
when="@3.1 ^[email protected]:",
)

@property
def build_targets(self):
targets = []
spec = self.spec

targets.append("MFEM_DIR=%s" % spec["mfem"].prefix)
targets.append("CONFIG_MK=%s" % spec["mfem"].package.config_mk)
targets.append("TEST_MK=%s" % spec["mfem"].package.test_mk)
if spec.satisfies("@:2.0"):
targets.append("CXX=%s" % spec["mpi"].mpicxx)
if "+ofast %gcc" in self.spec:
targets.append("CXXFLAGS = -Ofast -finline-functions")
return targets

# See lib/spack/spack/build_systems/makefile.py
def check(self):
with working_dir(self.build_directory):
make("test", *self.build_targets)

def install(self, spec, prefix):
mkdirp(prefix.bin)
install("laghos", prefix.bin)

@run_after("install")
wdhawkins marked this conversation as resolved.
Show resolved Hide resolved
def copy_test_files(self):
srcs = ["data"]
cache_extra_test_sources(self, srcs)

install_time_test_callbacks = [] # type: List[str]
Loading