#!/usr/bin/env bash # Check status of running Camelyon17 experiments # Usage: bash scripts/check_run_status.sh set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "${ROOT}" ACTIVE=$(pgrep -f "causalgrok_camelyon_v2" | wc -l) echo "════════════════════════════════════════════════════════════" echo " Camelyon17 Experiment Status" echo "════════════════════════════════════════════════════════════" echo "" echo "Active processes: $ACTIVE / 10" if [ "$ACTIVE" -eq 0 ]; then echo "" echo " ⏸ All experiments have completed!" echo "" echo " Next step: Run post-processing" echo " bash scripts/post_process.sh" echo "" else echo "" echo " ⏳ Waiting for experiments to complete..." echo "" for run in experiments/runs/20260502-214859_grokking_n300_* experiments/runs/20260502-214859_standard_*; do if [ -d "$run" ]; then name=$(basename "$run") epoch=$(tail -1 "$run/logs/train.log" 2>/dev/null | awk '{print $2}' | tr -d '|' || echo "0") echo " $name: epoch $epoch / 3000" fi done for run in experiments/runs/20260502-215247_camelyon_v2_*; do if [ -d "$run" ]; then name=$(basename "$run" | sed 's/20260502-215247_camelyon_v2_//') epoch=$(tail -1 "$run/logs/train.log" 2>/dev/null | awk '{print $2}' | tr -d '|' || echo "0") echo " $name: epoch $epoch / 700-900" fi done echo "" fi echo "════════════════════════════════════════════════════════════"