37 lines
714 B
Bash
Executable File
37 lines
714 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set_intel_vars=/opt/intel/oneapi/setvars.sh
|
|
if [ -f $set_intel_vars ]; then
|
|
source $set_intel_vars
|
|
fi
|
|
|
|
function resolve_host() {
|
|
host="$1"
|
|
check="nslookup $host"
|
|
max_retry=10
|
|
counter=0
|
|
backoff=0.1
|
|
until $check > /dev/null
|
|
do
|
|
if [ $counter -eq $max_retry ]; then
|
|
echo "Couldn't resolve $host"
|
|
return
|
|
fi
|
|
sleep $backoff
|
|
echo "Couldn't resolve $host... Retrying"
|
|
((counter++))
|
|
backoff=$(echo - | awk "{print $backoff + $backoff}")
|
|
done
|
|
echo "Resolved $host"
|
|
}
|
|
|
|
if [ "$K_MPI_JOB_ROLE" == "launcher" ]; then
|
|
resolve_host "$HOSTNAME"
|
|
cut -d ':' -f 1 /etc/mpi/hostfile | while read -r host
|
|
do
|
|
resolve_host "$host"
|
|
done
|
|
fi
|
|
|
|
exec "$@"
|