hardware-counters
weak_worklist.sh
#!/bin/bash
# Weak-scaling worklist for Cirrus: BASE is the per-rank work unit, and
# weak_sizes.py expands it to a global size for the given rank count.
B=/work/project/project/user
W=$B/runs/weak/worklist.txt
mkdir -p "$B/runs/weak"; : > "$W"
CORES="1 2 4 8 16 32 64 128 288"
for nc in $CORES; do
# three per-rank work levels per app, so problem size is still a variable
for b in 32 48 64; do echo "minife $nc $b 1 01:00:00" >> "$W"; done
for b in 16 24 32; do echo "comd $nc $b 1 01:00:00" >> "$W"; done
for b in 2000 3000 4000; do echo "hpl $nc $b 1 01:30:00" >> "$W"; done
for b in 32 48 64; do echo "hpcg $nc $b 1 01:00:00" >> "$W"; done
for b in 10000000 20000000; do echo "stream $nc $b 1 00:30:00" >> "$W"; done
done
# lulesh needs a cube number of ranks
for nc in 1 8 27 64 125; do
for b in 32 48 64; do echo "lulesh $nc $b 1 01:00:00" >> "$W"; done
done
# thread decomposition at fixed core count
for nc in 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 01:00:00" >> "$W"
done
done
echo "worklist: $(wc -l < "$W") entries"