sombrero
A next-generation conjugate gradient benchmark from computational particle physics
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
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
Metadata Files
README.md

A benchmarking utility for high performance computing based on lattice field theory applications.
Requirements
Requires an MPI library and compiler.
Setup
- Clone the repository
git clone https://github.com/sa2c/sombrero.git
cd sombrero
- Edit
Make/MkFlagsto set the compiler,CFLAGSand linker flags - 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
- Website: sa2c.swan.ac.uk
- Repositories: 15
- Profile: https://github.com/sa2c
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 | 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
- Homepage: https://github.com/sa2c/sombrero
- License: []
-
Latest release: 1.0
published almost 4 years ago