sombrero

A next-generation conjugate gradient benchmark from computational particle physics

https://github.com/sa2c/sombrero

Science Score: 62.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 5 committers (80.0%) from academic institutions
  • Institutional organization owner
    Organization sa2c has institutional domain (sa2c.swan.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A next-generation conjugate gradient benchmark from computational particle physics

Basic Info
  • Host: GitHub
  • Owner: sa2c
  • License: gpl-2.0
  • Language: C
  • Default Branch: shoplifted
  • Size: 341 KB
Statistics
  • Stars: 6
  • Watchers: 3
  • Forks: 3
  • Open Issues: 2
  • Releases: 5
Created almost 7 years ago · Last pushed over 4 years ago
Metadata Files
Readme License Citation

README.md

SOMBRERO

A benchmarking utility for high performance computing based on lattice field theory applications.

Requirements

Requires an MPI library and compiler.

Setup

  1. Clone the repository

git clone https://github.com/sa2c/sombrero.git cd sombrero

  1. Edit Make/MkFlags to set the compiler, CFLAGS and linker flags
  2. To compile run

make

Setup with Spack

Install and configure the package sombrero as you would do with a regular Spack package.

Usage

To run all benchmarks use the sombrero.sh script:

./sombrero.sh -n <num-cores> [ -w ] [ -s small | medium | large | very_large ]

By default this will run a medium scale problem using <num-cores> MPI ranks. The problem size is independent of the number of processes. This is useful for strong scaling.

All output is printed to stdout and error messages to stderr.

Usage with Spack

When using Spack, once SOMBRERO has been installed, loading the sombrero package with spack load sombrero will make sombrero.sh available in the PATH environment variable, so one can use:

sombrero.sh -n <num-cores> [ -w ] [ -s small | medium | large | very_large ]

Parameters

-n <num-cores>:
    Set the number of MPI ranks. SOMBRERO will attempt to divide the problem accross the ranks automatically. The number of ranks num-cores should be a power of 2, num-cores = 2^n. This can be multiplied by a factor of 3, num-cores = 3 * 2^n.

-s small | medium | large | very_large:
    Specify the problem size. Compatible with weak or strong scaling.

./sombrero.sh -n Np -s large

-w:
    Weak scaling. The problem size will be a multiple of the number of MPI ranks.

./sombrero.sh -n Np -w

By default a small local problem size is used, requiring maximal communication. A larger local problem size can be set as in the strong scaling case, for example

./sombrero.sh -n Np -w -s medium

Note that for the medium and large cases a minimum of 4 MPI ranks is required.

Example Slurm Script

An example job script for a strong scaling study:

```

!/bin/bash

SBATCH --ntasks=256

SBATCH --job-name=sombrero_strong

SBATCH --time=0-0:20

SBATCH --ntasks-per-node=32

cd $SLURMSUBMITDIR

./sombrero.sh -n $SLURMNTASKS -s medium > strong$n ```

A weak scaling example:

```

!/bin/bash

SBATCH --ntasks=128

SBATCH --job-name=sombrero_strong

SBATCH --time=0-0:20

SBATCH --ntasks-per-node=32

cd $SLURMSUBMITDIR

./sombrero.sh -n $SLURMNTASKS -w -s small > weak$n ```

Benchmarks

SOMBRERO runs 6 benchmarks, each representing a theory in under active study by the lattice field theory community. For the purposes of benchmarking, the models vary only in the amount of data communicated and the number of floating point operation required. Since the exact numbers depend on the problem size and the number of ranks, they are printed for each case.

The theories are

Case 1: Two color QCD (Quantum Chronodynamics)

Case 2: Two color QCD with adjoint fermions

Case 3: QCD

Case 4: Symplectic four color QCD

Case 5: QCD with sextet fermions

Case 6: Symplectic four color QCD with adjoint fermions

Problem sizes

The default problem sizes are defined as follows:

In the case of strong scaling:

| Size | Global spatial length | Global temporal length | |------------|-----------------------|------------------------| | small | 24 | 32 | | medium | 48 | 64 | | large | 64 | 96 | | very_large | 96 | 128 |

In the case of weak scaling:

| Size | Local spatial length | Local temporal length | Global spatial length | Global temporal length | |------------|----------------------|-----------------------|------------------------|------------------------| | small | 4 | 4 | dynamically determined | dynamically determined | | medium | 24 | 1 | 24 | number of MPI ranks | | large | 48 | 1 | 48 | number of MPI ranks | | very_large | 64 | 1 | 64 | number of MPI ranks |

Miscellaneous

Additional parameters -l and -p exist for more precise control of the problem size. The benchmark theories are defined on a four dimensional lattice, which is partitioned equally among the MPI ranks.

-l NxNxNxN:
    Set the lattice size in each direction. Replace each N with an integer larger or equal to 4.

-p NxNxNxN:
    Manually partition the lattice among the MPI ranks. The lattice is divided accross N ranks in each direction. A positive integer must be used.

Once compiled, binaries for individual test cases can be found in the sombrero folder. For example the case 3 can be run separately with

mpirun -n Np sombrero/sombrero3 -s medium

The verbose mode will produce additional information:

mpirun -n Np sombrero/sombrero3 -s medium -v verbose

In case SOMBRERO was installed with Spack, in order to run a specific benchmark separately one has to use the full path to the executable program. To do so, once SOMBRERO is loaded by Spack with the command

spack load sombrero

one can run case 3 with

mpirun -n 2 $(which sombrero.sh | xargs dirname)/sombrero/sombrero3 -s small

Owner

  • Name: Swansea Academy of Advanced Computing
  • Login: sa2c
  • Kind: organization
  • Email: sa2c-support@swansea.ac.uk

We are an Academic Academy that supports research making use of High-Performance Computing (HPC) at Swansea University

Citation (CITATION.cff)

# YAML 1.2
---
authors: 
  -
    affiliation: "Swansea University"
    family-names: Bennett
    given-names: Ed
    orcid: "https://orcid.org/0000-0002-1678-6701"
  -
    affiliation: "Swansea University"
    family-names: Lucini
    given-names: Biagio
    orcid: "https://orcid.org/0000-0001-8974-8266"
  -
    affiliation: "University of Helsinki"
    family-names: Rantaharju
    given-names: Jarno
    orcid: "https://orcid.org/0000-0002-0072-7707"
cff-version: "1.1.0"
license: "GPL-2.0-only"
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/sa2c/sombrero"
title: SOMBRERO
...

GitHub Events

Total
  • Fork event: 1
Last Year
  • Fork event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 52
  • Total Committers: 5
  • Avg Commits per committer: 10.4
  • Development Distribution Score (DDS): 0.231
Top Committers
Name Email Commits
Michele Mesiti m****i@g****m 40
Ed Bennett e****t@s****k 6
Ed Bennett E****t@s****k 3
Michele Mesiti m****i@s****k 2
Ed Bennett ed@p****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 3
  • Total pull requests: 3
  • Average time to close issues: 2 days
  • Average time to close pull requests: 3 months
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.33
  • Average comments per pull request: 1.67
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mmesiti (2)
  • edbennett (1)
Pull Request Authors
  • mmesiti (2)
  • giordano (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 2
spack.io: sombrero

A next-generation conjugate gradient benchmark from computational particle physics

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 28.5%
Average: 28.8%
Forks count: 29.3%
Dependent packages count: 57.3%
Maintainers (2)
Last synced: 6 months ago