bind_dgx_a100.sh 569 B

1234567891011121314151617181920
  1. #!/bin/bash
  2. if [[ -v SLURM_LOCALID ]]; then
  3. echo "Bind using slurm localid"
  4. LOCAL_ID=$SLURM_LOCALID
  5. elif [[ -v OMPI_COMM_WORLD_LOCAL_RANK ]]; then
  6. echo "Bind using OpenMPI env"
  7. LOCAL_ID=$OMPI_COMM_WORLD_LOCAL_RANK
  8. else
  9. echo "Bind to first node"
  10. LOCAL_ID=0
  11. fi
  12. case $LOCAL_ID in
  13. 0|1) exec numactl --cpunodebind=3 --membind=3 $@;;
  14. 2|3) exec numactl --cpunodebind=1 --membind=1 $@;;
  15. 4|5) exec numactl --cpunodebind=7 --membind=7 $@;;
  16. 6|7) exec numactl --cpunodebind=5 --membind=5 $@;;
  17. *) echo "unknown binding"; exec $@;;
  18. esac