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