openpath / scripts /launch_om_run2.sh
taejoon89's picture
Upload folder using huggingface_hub
97863b7 verified
Raw
History Blame Contribute Delete
2.25 kB
#!/usr/bin/env bash
# run2 ํ•™์Šต ๋Ÿฐ์ฒ˜: TJ-2~6(5๋…ธ๋“œร—8=40 GPU) FSDP. host=TJ-2, ์›Œ์ปค=TJ-3~6. โ˜…TJ-1์€ ํ•™์Šต ์ œ์™ธ(eval watcher ์ „์šฉ).
# TJ-1(์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ)์—์„œ ์‹คํ–‰ โ€” ๋กœ์ปฌ ํ•™์Šต ํ”„๋กœ์„ธ์Šค ์—†์Œ. host๋„ ์›๊ฒฉ(ssh TJ-2)์ด๋ผ ์ž๊ธฐ์ฐธ์กฐ ํ•จ์ • ์—†์Œ.
# ์‚ฌ์šฉ: scripts/launch_om_run2.sh <rdzv_id> <config_abspath> <outdir> <logdir> [extra train.py args...]
set -u
R=/NHNHOME/WORKSPACE/0526040027_A/OpenPath
RDZV="$1"; CFG="$2"; OUTDIR="$3"; LOGDIR="$4"; shift 4
EXTRA="$*"
HOST="TJ-2"
EP="10.34.15.21:29500" # TJ-2 IB IP (rendezvous rank0)
WORKERS="TJ-3 TJ-4 TJ-5 TJ-6"
PYC="\$HOME/.cache/op_pyc_$RDZV" # ๋…ธ๋“œ-๋กœ์ปฌ. ์›๊ฒฉ ์…ธ์—์„œ ํ™•์žฅ๋˜๋„๋ก escape
ENV="WANDB_MODE=disabled NCCL_DEBUG=WARN NCCL_IB_HCA=mlx5_1,mlx5_2,mlx5_4,mlx5_9 \
NCCL_SOCKET_IFNAME=bond0 GLOO_SOCKET_IFNAME=bond0 \
NCCL_IB_TIMEOUT=22 NCCL_IB_RETRY_CNT=13 NCCL_IB_QPS_PER_CONNECTION=4 \
PYTHONDONTWRITEBYTECODE=1 PYTHONPYCACHEPREFIX=$PYC PYTHONPATH=$R/third_party/OpenMidnight"
TR="venv/bin/torchrun --nnodes=5 --nproc-per-node=8 --rdzv-backend=c10d \
--rdzv-endpoint=$EP --rdzv-id=$RDZV \
third_party/OpenMidnight/dinov2/train/train.py --config-file $CFG --output-dir $OUTDIR $EXTRA"
mkdir -p "$LOGDIR" "$OUTDIR"
# 1) host(TJ-2) ์›๊ฒฉ ๊ธฐ๋™ โ€” โ˜…ssh๋ฅผ &๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ(์•ˆ ๊ทธ๋Ÿฌ๋ฉด ์›๊ฒฉ setsid์˜ ์ƒ์† fd๋ฅผ ๋ฌผ๊ณ  ssh๊ฐ€ ๋ฐ˜ํ™˜ ์•ˆ ํ•จ=๋Ÿฐ์ฒ˜ ํ–‰)
echo "launching host on $HOST ..."
ssh -n -o BatchMode=yes "$HOST" "mkdir -p $PYC; cd $R && setsid env $ENV $TR > $LOGDIR/${HOST}.log 2>&1 < /dev/null & echo ${HOST}-host-fired" &
# 2) host torchrun๊ฐ€ store ๋ฐ”์ธ๋”ฉํ•  ์‹œ๊ฐ„(๊ณ ์ • ๋Œ€๊ธฐ). c10d๋Š” ์›Œ์ปค๊ฐ€ ์žฌ์‹œ๋„๋กœ ๋ถ™์œผ๋ฏ€๋กœ ssํด๋ง ๋ถˆํ•„์š”.
echo "waiting 30s for host store bind on $EP ..."
sleep 30
echo "firing 4 workers"
# 3) ์›Œ์ปค(TJ-3~6) ๋ณ‘๋ ฌ ๊ธฐ๋™
for n in $WORKERS; do
ssh -n -o BatchMode=yes "$n" "mkdir -p $PYC; cd $R && setsid env $ENV $TR > $LOGDIR/${n}.log 2>&1 < /dev/null & echo ${n}-fired" &
done
# โ˜… wait ๋Œ€์‹  ๊ณ ์ • sleep โ€” bg ssh๊ฐ€ ์›๊ฒฉ setsid์˜ fd๋ฅผ ๋ฌผ์–ด ๋ฐ˜ํ™˜ ์•ˆ ํ•  ์ˆ˜ ์žˆ์–ด wait๋Š” ์˜์›ํžˆ ๋ฉˆ์ถค(autoresume blocking ํ˜ธ์ถœ๋„ ๋ง‰ํž˜).
sleep 20
echo "ALL launched: host $HOST + workers $WORKERS | rdzv=$RDZV | logs=$LOGDIR | out=$OUTDIR"