hardware-counters
cirrus_worklist.sh
#!/bin/bash
# Generate the Cirrus sweep worklist.
#
# Core counts mirror ARCHER2's powers of two, plus 288 (a full Cirrus node) so
# the platform's own maximum is represented. ARCHER2 nodes are 128 cores, so
# 1-128 is the directly comparable range and 288 is Cirrus-only.
#
# Problem sizes are IDENTICAL to the ARCHER2 sweep, which is what makes
# cross-platform comparison meaningful: same code, same problem, different
# hardware.
B=/work/project/project/user
W=$B/runs/sweep/worklist.txt
mkdir -p "$B/runs/sweep"
: > "$W"
CORES="1 2 4 8 16 32 64 128 288"
for nc in $CORES; do
for s in 10000000 40000000 80000000; do echo "stream $nc $s 1 00:30:00" >> "$W"; done
for s in 16 32 48 64; do echo "hpcg $nc $s 1 01:00:00" >> "$W"; done
for s in 2000 6000 12000; do echo "hpl $nc $s 1 01:00:00" >> "$W"; done
for s in 32 48 64; do echo "minife $nc $s 1 00:45:00" >> "$W"; done
for s in 16 24 32; do echo "comd $nc $s 1 00:45:00" >> "$W"; done
done
# lulesh needs a cube number of ranks
for nc in 1 8 27 64 125; do
for s in 16 24 32; do echo "lulesh $nc $s 1 00:45:00" >> "$W"; done
done
# MPI x OpenMP decomposition at fixed core count
for nc in 16 32 64 128 288; do
for t in 2 4 8; do
echo "hpcg $nc 48 $t 01:00:00" >> "$W"
echo "minife $nc 48 $t 00:45:00" >> "$W"
done
done
echo "worklist: $(wc -l < "$W") entries"