| #!/bin/bash |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| echo "Starting multi-node job on $(hostname) at $(date)" |
| echo "SLURM_JOB_ID: $SLURM_JOB_ID" |
| echo "SLURM_JOB_NODELIST: $SLURM_JOB_NODELIST" |
| echo "SLURM_JOB_NUM_NODES: $SLURM_JOB_NUM_NODES" |
| echo "SLURM_GPUS_ON_NODE: $SLURM_GPUS_ON_NODE" |
| echo "SLURM_NODEID: $SLURM_NODEID" |
|
|
| |
| PROJECT_ROOT="/path/to/Motus" |
| cd $PROJECT_ROOT |
|
|
| |
| module load cuda/12.8 || echo "Warning: Could not load CUDA module" |
| source /path/to/miniconda3/etc/profile.d/conda.sh |
| conda activate /path/to/motus_env |
|
|
| |
| export PYTHONPATH=${PROJECT_ROOT}:${PYTHONPATH} |
| export OMP_NUM_THREADS=8 |
| export CUDA_HOME=$CONDA_PREFIX |
|
|
| |
| nodes=$(scontrol show hostnames $SLURM_JOB_NODELIST) |
| master_addr=$(echo "$nodes" | head -n 1) |
| export MASTER_ADDR=$master_addr |
|
|
| echo "NODELIST: $nodes" |
| echo "MASTER_ADDR: $master_addr" |
| echo "Current node index: $SLURM_NODEID" |
|
|
| |
| export NCCL_IB_HCA=mlx5_0:1,mlx5_1:1,mlx5_4:1,mlx5_5:1,mlx5_6:1,mlx5_13:1,mlx5_16:1,mlx5_17:1 |
| export NCCL_IB_DISABLE=0 |
| export NCCL_SOCKET_IFNAME=bond1 |
| export NCCL_IB_RETRY_CNT=7 |
| export NCCL_IB_TIMEOUT=23 |
| export NCCL_DEBUG=INFO |
|
|
| |
| export NCCL_ASYNC_ERROR_HANDLING=1 |
| export TORCH_NCCL_ASYNC_ERROR_HANDLING=1 |
| export TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC=1800 |
|
|
| |
| mkdir -p logs |
|
|
| |
| CONFIG_FILE=${CONFIG_FILE:-"configs/robotwin.yaml"} |
| RUN_NAME=${RUN_NAME:-"robotwin_test"} |
| MASTER_PORT=${MASTER_PORT:-29500} |
|
|
| echo "==========================================" |
| echo "Multi-Node Training Configuration" |
| echo "Nodes: $SLURM_JOB_NUM_NODES" |
| echo "GPUs per node: $SLURM_GPUS_ON_NODE" |
| echo "Total GPUs: $((SLURM_JOB_NUM_NODES * SLURM_GPUS_ON_NODE))" |
| echo "Master addr: $master_addr" |
| echo "Master port: $MASTER_PORT" |
| echo "Config: $CONFIG_FILE" |
| echo "Run name: $RUN_NAME" |
| echo "==========================================" |
|
|
| |
| export CONFIG_FILE |
| export RUN_NAME |
| export MASTER_PORT |
|
|
| |
| srun bash scripts/slurm/multi_node_worker.sh |
|
|
| echo "Training completed at $(date)" |