#!/bin/bash # Box: PGO Profile Configuration (FAST minimal) # Purpose: Define representative workloads for FAST minimal PGO collection. # Contract: # - Only deterministic workloads (fixed args/seeds). # - Must complete quickly per workload (PGO box enforces timeout). # - Keep baseline toolchain consistent (GCC + LTO; profile-generate/use handled by Makefile). # Binaries to profile (must exist after `make pgo-fast-profile`) PGO_BINARIES=( "./bench_random_mixed_hakmem" "./bench_tiny_hot_hakmem" ) # Representative workloads (deterministic). # # Notes: # - Keep these as shell strings: pgo_tiny_profile_box.sh runs them via `bash -lc`. # - Prefer the same (iter, ws, seed) shape as the canonical Mixed 10-run, but shorter. # # Phase 68 Update: Diversify WS and seeds to reduce overfitting. # - Mixed WS: Added 100, 256, 512, 1024 to existing 400 (5 patterns total). # - Tiny hot: Added seed variants 60001, 60002 to 60000 (3 seeds total). PGO_WORKLOADS=( # Mixed: run via cleanenv to match benchmark presets (prevents PGO mismatch). # Keep runs small; collector enforces per-workload timeout. # Expanded WS range: 100, 256, 400, 512, 1024 (was: 128, 400, 800) "HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=100 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh" "HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=256 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh" "HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=400 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh" "HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=512 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh" "HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=1024 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh" # Tiny hot: C0-ish (16B) and C3-ish (64B) patterns with seed diversification. # Extended seed set: 60000, 60001, 60002 (was: 60000 only) "./bench_tiny_hot_hakmem 16 100 60000" "./bench_tiny_hot_hakmem 16 100 60001" "./bench_tiny_hot_hakmem 16 100 60002" "./bench_tiny_hot_hakmem 64 100 60000" "./bench_tiny_hot_hakmem 64 100 60001" "./bench_tiny_hot_hakmem 64 100 60002" ) # Configuration summary PGO_WORKLOAD_COUNT=${#PGO_WORKLOADS[@]} PGO_BINARY_COUNT=${#PGO_BINARIES[@]}