Adding a Ramble Application

Glossary terms: Benchmark, Application

A Ramble application.py defines a benchmark’s inputs and runtime parameters. If an application already exists in the Ramble Applications repository, Benchpark uses that definition. An application in repos/ramble_applications/<benchmark-name>/application.py overrides the corresponding upstream application.

For the HPL example, create repos/ramble_applications/hpl/application.py with the following complete contents:

 1# Copyright 2023 Lawrence Livermore National Security, LLC and other
 2# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
 3#
 4# SPDX-License-Identifier: Apache-2.0
 5
 6import sys
 7
 8from ramble.app.builtin.hpl import Hpl as HplBase
 9from ramble.appkit import *
10
11
12class Hpl(HplBase):
13
14    tags = ['synthetic',
15            'blas','solver','dense-linear-algebra',
16            'large-scale',
17            'mpi','network-collectives','network-point-to-point',
18            'c']

This application.py inherits Ramble’s HPL definition and adds Benchpark catalogue tags.

For a benchmark without an upstream application, follow the Ramble Application Definition Developers Tutorial. Test the resulting application.py using the Ramble Testing Application Definitions instructions.

Before adding the experiment, create its Spack package if one is also missing.

Next Step