Difference between revisions of "Benchmarking & Scaling Tutorial/Automated Benchmarking"
(Created page with "{{DISPLAYTITLE:Automated Benchmarking using a Job Script}}<nowiki /> {{Syllabus Benchmarking & Scaling}}<nowiki /> __TOC__ == Automate test runs == While still being logged...") |
(No difference)
|
Revision as of 13:35, 23 September 2021
Tutorial | |
---|---|
Title: | Benchmarking & Scaling |
Provider: | HPC.NRW
|
Contact: | tutorials@hpc.nrw |
Type: | Online |
Topic Area: | Performance Analysis |
License: | CC-BY-SA |
Syllabus
| |
1. Introduction & Theory | |
2. Interactive Manual Benchmarking | |
3. Automated Benchmarking using a Job Script | |
4. Automated Benchmarking using JUBE | |
5. Plotting & Interpreting Results |
Automate test runs
While still being logged in at our interactive session on the compute node, we can start writing a Bash script to automate running simulations with different amounts of cores. After all we want to know how our simulation scales and determine the speedup.
We will start by loading all needed modules and defining a variable GMX to hold our complete GROMACS command
#!/bin/bash
# Load all needed modules (adjust to your specific site!)
module load GROMACS
GMX="gmx_mpi -quiet mdrun -deffnm MD_5NM_WATER -nsteps 10000 -ntomp 1 -pin on "
Next we will create a loop over different amounts of cores our simulation should run with. It is advisable to start with the highest core count first, as these take the least amount of time. Which core counts you want to test depends on the system you are running on. Make sure to include the serial case (1 core) and the full node. In the first example we will use all logical cores (i.e. use hyperthreading). It is also a good idea to test a full socket, in this case 36 cores.
for P in 72 66 60 54 48 42 36 30 24 18 12 8 4 2 1; do
srun --cpu-bind=threads -n $P $GMX
done
Next: Plotting and Interpreting Results
Previous: Interactive Manual Benchmarking