20 lines
569 B
Bash
20 lines
569 B
Bash
#!/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
|