| # 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" | |