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

Adding Kripke to Benchpark #83

Merged
merged 28 commits into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ad6b19b
Adding Kripke to Benchpark
pearce8 Dec 15, 2023
a6367b9
Merge branch 'develop' into experiment/kripke
pearce8 Dec 19, 2023
2158468
Merge branch 'develop' into experiment/kripke
pearce8 Dec 28, 2023
e0700a9
adding license
pearce8 Dec 28, 2023
d626991
Merge branch 'develop' into experiment/kripke
pearce8 Jan 3, 2024
bdb969d
adding ramble.yaml for cuda and rocm
pearce8 Jan 3, 2024
337a66e
Merge branch 'develop' into experiment/kripke
pearce8 Jan 9, 2024
7a8bcfe
Adding tags
pearce8 Jan 9, 2024
624bb23
Merge branch 'develop' into experiment/kripke
pearce8 Jan 15, 2024
ec9e270
Adding cuda instead of openmp
pearce8 Jan 15, 2024
3e54c9e
Merge branch 'develop' into experiment/kripke
pearce8 Jan 16, 2024
cca5baf
Merge branch 'develop' into experiment/kripke
pearce8 Jan 17, 2024
f1955d4
adding Kripke package.py in benchpark repo temporarily
pearce8 Jan 19, 2024
6e371f8
Update license
pearce8 Jan 20, 2024
e89af7d
Merge branch 'develop' into experiment/kripke
pearce8 Jan 20, 2024
74b1514
Merge branch 'develop' into experiment/kripke
pearce8 Jan 20, 2024
07aa9a1
Merge branch 'develop' into experiment/kripke
pearce8 Jan 27, 2024
c15af53
Merge branch 'develop' into experiment/kripke
pearce8 Feb 6, 2024
b990191
Merge branch 'develop' into experiment/kripke
pearce8 Feb 20, 2024
7435d2b
Merge branch 'develop' into experiment/kripke
pearce8 Feb 22, 2024
6b31c47
Merge branch 'develop' into experiment/kripke
pearce8 Apr 15, 2024
9b283d6
Pulling in new Spack package, updating to point at Robert's PR
pearce8 Apr 15, 2024
fd482d1
Merge branch 'develop' into experiment/kripke
pearce8 Apr 17, 2024
94b33f3
First attempt to align versions of RAJA suite components
pearce8 Apr 18, 2024
57eac2b
Merge branch 'develop' into experiment/kripke
pearce8 Apr 25, 2024
dd80cf1
Experiment/kripke new (#214)
rfhaque Apr 30, 2024
e1ead39
Merge branch 'develop' into experiment/kripke
pearce8 Apr 30, 2024
c82d670
Merge branch 'develop' into experiment/kripke
pearce8 May 3, 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
18 changes: 18 additions & 0 deletions experiments/kripke/cuda/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/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}

{spack_setup}

{experiment_setup}

{command}
54 changes: 54 additions & 0 deletions experiments/kripke/cuda/ramble.yaml
Original file line number Diff line number Diff line change
@@ -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

ramble:
include:
- ./configs/spack.yaml
- ./configs/variables.yaml

config:
deprecated: true
spack_flags:
install: '--add --keep-stage'
concretize: '-U -f'

applications:
kripke:
workloads:
problem1:
env_vars:
variables:
p: 2
px: '{p}'
py: '{p}'
pz: '{p}'
n: ['55', '110']
nx: '{n}'
ny: '{n}'
nz: '{n}'
experiment_setup: ''
processes_per_node: ['4']
n_nodes: ['1', '2']
n_ranks: '{processes_per_node} * {n_nodes}'
experiments:
kripke_rocm_problem1_{n_nodes}_{n_ranks}_{px}_{py}_{pz}_{nx}_{ny}_{nz}:
variables:
env_name: kripke
matrices:
- size_jobs:
- n # TODO: Filter matrix
- n_nodes # TODO: Filter matrix

spack:
concretized: true
packages:
kripke-cuda:
spack_spec: [email protected] +cuda
compiler: default-compiler
environments:
kripke-cuda:
packages:
- default-mpi
- kripke-cuda
18 changes: 18 additions & 0 deletions experiments/kripke/openmp/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/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}

{spack_setup}

{experiment_setup}

{command}
57 changes: 57 additions & 0 deletions experiments/kripke/openmp/ramble.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# 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:
kripke:
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}'
experiment_setup: ''
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:
kripke_omp_problem1_{n_nodes}_{omp_num_threads}_{px}_{py}_{pz}_{nx}_{ny}_{nz}:
variables:
env_name: kripke
matrices:
- size_threads:
- n # TODO: Filter matrix
- threads_per_node_core # TODO: Filter matrix
spack:
concretized: true
packages:
kripke-omp:
spack_spec: kripke@develop +mpi+openmp
compiler: default-compiler
environments:
kripke-omp:
packages:
- default-mpi
- kripke-omp
18 changes: 18 additions & 0 deletions experiments/kripke/rocm/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/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}

{spack_setup}

{experiment_setup}

{command}
53 changes: 53 additions & 0 deletions experiments/kripke/rocm/ramble.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# 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:
kripke:
workloads:
problem1:
env_vars:
variables:
p: 2
px: '{p}'
py: '{p}'
pz: '{p}'
n: ['55', '110']
nx: '{n}'
ny: '{n}'
nz: '{n}'
experiment_setup: ''
processes_per_node: ['4']
n_nodes: ['1', '2']
n_ranks: '{processes_per_node} * {n_nodes}'
experiments:
kripke_rocm_problem1_{n_nodes}_{n_ranks}_{px}_{py}_{pz}_{nx}_{ny}_{nz}:
variables:
env_name: kripke
matrices:
- size_jobs:
- n # TODO: Filter matrix
- n_nodes # TODO: Filter matrix
spack:
concretized: true
packages:
kripke-rocm:
spack_spec: [email protected] +mpi+rocm
compiler: default-compiler
environments:
kripke-rocm:
packages:
- default-mpi
- kripke-rocm
60 changes: 60 additions & 0 deletions repo/kripke/application.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# 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 ramble.appkit import *

import sys

class Kripke(SpackApplication):
"""Kripke benchmark uses RAJA Portability Layer"""
name = "Kripke"

tags = ['asc','transport','deterministic','structured-grid',
'large-scale','multi-node','single-node','c++','raja',
'simd','vectorization','register-pressure','high-fp','atomics','high-branching',
'high-memory-bandwidth','large-memory-footprint','regular-memory-access',
'mpi','network-latency-bound','network-collectives']

executable('p1', 'kripke' +
' -P {px} {py} {pz}' +
' -n {nx} {ny} {nz}' +
' -problem 1' +
' -keepT', use_mpi=True)

executable('p2', 'kripke' +
' -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<fom>[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
Loading