---
## HPC Benchmarking
-----------------------------
CERN, SKAO, GÉANT, PRACE Collaboration on High Performance Computing
David Southwick (CERN)
8 Jan. 2021
---
### Review on already presented tools
> Can we combine these tools?
Small collection of benchmarking material already presented at kickoff meeting:
[stackHPC (SKA)](https://github.com/stackhpc/hpc-tests)
[Unified European Applications Benchmark Suite (PRACE](https://repository.prace-ri.eu/git/UEABS/ueabs/)
[HEP Benchmark Suite (CERN)](https://gitlab.cern.ch/hep-benchmarks/hep-benchmark-suite/-/tree/qa-v2.0)
> see kickoff material for more @ https://indico.cern.ch/event/952623/contributions/
---
### Benchmarking at CERN
<img align="right" style="float: right;" src="https://gitlab.cern.ch/hep-benchmarks/hep-benchmark-suite/-/raw/qa-v2.0/doc/images/HEP-Benchmark-Suite.png" width=300>
Reworked to target WLCG workloads on HPC:
-> Designed to be modular, unprivileged
-> Submit via SLURM/other job managers
-> Automated, with AMQ result reporting
-> Simple to add additional workloads
---
## Brainstorming
Can we combine PRACE/CERN Tools?
---
## Backup
---
#### Slurm batch submission job definition
```shell=bash
#!/bin/bash
#
#SBATCH --exclusive --hint=multithread
#SBATCH --job-name=HEP-Benchmark-suite
#SBATCH --output=res%A-%j.out
#SBATCH --mail-type=END,FAIL
#SBATCH --mail-user=david.southwick@cern.ch
#SBATCH --array=1-20
module purge
module load gcc singularity/3.5.3 python3/3.7.3
export HS_BRANCH=qa-v1.0
export RUNDIR=/tmp/HEP
export HBS_BRANCH=qa-v2.0
export BMKSUITE_TAG_SITE="my HPC site string"
echo "Running HEP Benchmark Suite on $SLURM_CPUS_ON_NODE Cores"
# install suite as a module
mkdir -p $RUNDIR
python3 -m pip install --user --upgrade git+https://gitlab.cern.ch/hep-benchmarks/hep-benchmark-suite.git@$HBS_BRANCH
python3 -m pip install --user --upgrade git+https://gitlab.cern.ch/hep-benchmarks/hep-score.git@$HS_BRANCH
# run
$HOME/.local/bin/bmkrun --tags --config default --rundir $RUNDIR
# Copy local results if not reporting via AMQ
cp /tmp/HEP/result_profile.json ~/ceph/results/${SLURM_JOB_ID}_result.json
find ${RUNDIR} \( -name \*.json -o -name \*.log \) -exec tar -rvf ~/ceph/results/results-${SLURM_JOB_ID}-${SLURM_ARRAY_JOB_ID}.tar {} +
```
{"type":"slide","config.defaultUseHardbreak":true,"slideOptions":{"theme":"cern5"}}