PoPTard5 / model-3 /scripts /finalize.sh
Jyo-K's picture
Upload folder using huggingface_hub
e79d917 verified
Raw History Blame Contribute Delete
2.05 kB
#!/usr/bin/env bash
# Worker B has already claimed chunk 8, so worker A must NOT walk on to it after
# finishing chunk 4 - it would duplicate ~1h of reranking and finish later than B.
#
# Plan: let A finish chunk 4, stop A and its supervisor, wait for B to land chunk 8,
# then run ONE decision-only pass over all 9 chunks.
set -uo pipefail
cd "$(dirname "$0")/.."
ROOT=$(pwd); LOGS="$ROOT/logs"; CK="$ROOT/work/results_A/test_chunks"
PY=/home/user4/Jyo/DAI/er_pipeline/.venv/bin/python
WD="$LOGS/finalize.log"
say() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$WD"; }
say "=== waiting for chunk 4 (A) and chunk 8 (B) ==="
while true; do
n=$(ls "$CK"/chunk_*.parquet 2>/dev/null | wc -l)
have4=0; [ -f "$CK/chunk_000800000.parquet" ] && have4=1
# once chunk 4 exists, stop A so it cannot start duplicating chunk 8
if [ "$have4" = 1 ] && [ ! -f "$LOGS/.a_stopped" ]; then
for s in $(pgrep -f "[s]upervise.sh test"); do say "stopping supervisor $s"; kill -9 "$s"; done
for p in $(pgrep -f "[r]un_test.py"); do
ps -p "$p" -o cmd --no-headers 2>/dev/null | grep -q "model-3/work/results_A" || continue
tr '\0' '\n' < "/proc/$p/environ" 2>/dev/null | grep -q "M3_CHUNK_LO" && continue
say "stopping worker A pid $p (chunk 4 done; chunk 8 belongs to B)"; kill -9 "$p"
done
touch "$LOGS/.a_stopped"
fi
[ "$n" -ge 9 ] && { say "all 9 chunks present"; break; }
sleep 60
done
say "running the global decision pass (conflict resolution + selection + write + validate)"
env CUDA_VISIBLE_DEVICES=1 HF_HOME=/scratch/user4/mtp/cache/huggingface \
PYTHONPATH="$ROOT/src" TOKENIZERS_PARALLELISM=false \
"$PY" "$ROOT/src/run_test.py" --gpu 0 --artifacts "$ROOT/work/results_A" \
>> "$LOGS/run_test_final.log" 2>&1
rc=$?
say "decision pass exited rc=$rc"
if [ -f "$ROOT/output/matching_results.tsv" ]; then
say "matching_results.tsv: $(wc -l < "$ROOT/output/matching_results.tsv") lines"
say "candidate_pairs.tsv : $(wc -l < "$ROOT/output/candidate_pairs.tsv") lines"
fi
say "=== finalize done ==="