| #!/bin/bash |
| |
| |
| |
| echo "Starting worker on $(hostname) at $(date)" |
| echo "SLURM_NODEID: $SLURM_NODEID" |
| echo "SLURM_LOCALID: $SLURM_LOCALID" |
| echo "SLURM_PROCID: $SLURM_PROCID" |
|
|
| |
| if [ -z "$SLURM_JOB_ID" ]; then |
| master_addr=127.0.0.1 |
| else |
| nodes=$(scontrol show hostnames $SLURM_JOB_NODELIST) |
| master_addr=$(echo "$nodes" | head -n 1) |
| fi |
|
|
| |
| echo "Worker configuration:" |
| echo " Node: $(hostname)" |
| echo " Node rank: $SLURM_NODEID" |
| echo " Master addr: $master_addr" |
| echo " Master port: $MASTER_PORT" |
| echo " Config: $CONFIG_FILE" |
| echo " Run name: $RUN_NAME" |
|
|
| |
| torchrun \ |
| --nnodes=$SLURM_JOB_NUM_NODES \ |
| --nproc_per_node=$SLURM_GPUS_ON_NODE \ |
| --node_rank=$SLURM_NODEID \ |
| --master_addr=$master_addr \ |
| --master_port=$MASTER_PORT \ |
| train/train.py \ |
| --deepspeed configs/zero1.json \ |
| --config $CONFIG_FILE \ |
| $(if [ -n "$RUN_NAME" ]; then echo "--run_name $RUN_NAME"; fi) \ |
| --report_to tensorboard |
|
|
| echo "Worker on $(hostname) completed at $(date)" |