Skip to content

Commit 54462ef

Browse files
authored
Merge pull request GoogleCloudPlatform#4733 from Neelabh94/feature/a4x-imex-prolog
Refactor a4xhigh-slurm-blueprint.yaml by moving epilog and prolog to slurm-gcp
2 parents 65b56ae + 96eb23e commit 54462ef

1 file changed

Lines changed: 8 additions & 71 deletions

File tree

examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml

Lines changed: 8 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,14 @@ deployment_groups:
663663
chmod 0755 "${SLURM_ROOT}/scripts/sudo-oslogin"
664664
ln -s "${SLURM_ROOT}/scripts/sudo-oslogin" "${SLURM_ROOT}/prolog_slurmd.d/sudo-oslogin.prolog_slurmd"
665665
ln -s "${SLURM_ROOT}/scripts/sudo-oslogin" "${SLURM_ROOT}/epilog_slurmd.d/sudo-oslogin.epilog_slurmd"
666+
curl -s -o "${SLURM_ROOT}/scripts/imex_prolog" \
667+
https://raw.githubusercontent.com/GoogleCloudPlatform/slurm-gcp/master/tools/prologs-epilogs/imex_prolog
668+
chmod 0755 "${SLURM_ROOT}/scripts/imex_prolog"
669+
ln -s "${SLURM_ROOT}/scripts/imex_prolog" "${SLURM_ROOT}/prolog_slurmd.d/imex_prolog.prolog_slurmd"
670+
curl -s -o "${SLURM_ROOT}/scripts/imex_epilog" \
671+
https://raw.githubusercontent.com/GoogleCloudPlatform/slurm-gcp/master/tools/prologs-epilogs/imex_epilog
672+
chmod 0755 "${SLURM_ROOT}/scripts/imex_epilog"
673+
ln -s "${SLURM_ROOT}/scripts/imex_epilog" "${SLURM_ROOT}/epilog_slurmd.d/imex_epilog.epilog_slurmd"
666674
- type: data
667675
destination: /opt/apps/system_benchmarks/run-nccl-tests-via-ramble.sh
668676
source: $(vars.benchmark_dir)/run-nccl-tests-via-ramble.sh
@@ -689,74 +697,3 @@ deployment_groups:
689697
switch_type: switch/nvidia_imex
690698
controller_state_disk: null
691699
controller_startup_script: $(controller_startup.startup_script)
692-
prolog_scripts:
693-
- filename: imex_prolog.sh
694-
content: |
695-
#!/usr/bin/env bash
696-
if ! systemctl list-unit-files --all | grep -Fq "nvidia-imex.service"; then
697-
exit 0
698-
fi
699-
700-
activate_imex() {
701-
set -ex
702-
703-
# Clean the config file in case the service gets started by accident
704-
> /etc/nvidia-imex/nodes_config.cfg
705-
706-
NVIDIA_IMEX_START_TIMEOUT=80
707-
IMEX_CONN_WAIT_TIMEOUT=70
708-
IMEX_SHUTDOWN_WAIT=60
709-
NVIDIA_IMEX_STOP_TIMEOUT=15
710-
DOMAIN_READY_TIMEOUT=15
711-
IMEX_SERVER_PORT=1101
712-
IMEX_CMD_PORT=1102
713-
# clean up prev connection
714-
set +e
715-
timeout $NVIDIA_IMEX_STOP_TIMEOUT systemctl stop nvidia-imex
716-
pkill -9 nvidia-imex
717-
set -e
718-
719-
# update peer list
720-
scontrol -a show node "${SLURM_NODELIST}" -o | sed 's/^.* NodeAddr=\([^ ]*\).*/\1/' > /etc/nvidia-imex/nodes_config.cfg
721-
722-
# rotate server port to prevent race condition
723-
sed -i "s/SERVER_PORT.*/SERVER_PORT=${IMEX_SERVER_PORT}/" /etc/nvidia-imex/config.cfg
724-
725-
# enable imex-ctl on all nodes so you can query imex status with: nvidia-imex-ctl -a -q
726-
sed -i "s/IMEX_CMD_PORT.*/IMEX_CMD_PORT=${IMEX_CMD_PORT}/" /etc/nvidia-imex/config.cfg
727-
sed -i "s/IMEX_CMD_ENABLED.*/IMEX_CMD_ENABLED=1/" /etc/nvidia-imex/config.cfg
728-
729-
# set timeouts for start
730-
sed -i "s/IMEX_CONN_WAIT_TIMEOUT.*/IMEX_CONN_WAIT_TIMEOUT=${IMEX_CONN_WAIT_TIMEOUT}/" /etc/nvidia-imex/config.cfg
731-
732-
sleep ${IMEX_SHUTDOWN_WAIT}
733-
netstat -na | grep tcp | grep ":${IMEX_SERVER_PORT}" || true
734-
netstat -na | grep tcp | grep ":${IMEX_CMD_PORT}" || true
735-
736-
timeout $NVIDIA_IMEX_START_TIMEOUT systemctl start nvidia-imex
737-
738-
sleep ${DOMAIN_READY_TIMEOUT}
739-
}
740-
activate_imex >> "/var/log/slurm/imex_prolog_${SLURM_JOB_ID}.log" 2>&1
741-
epilog_scripts:
742-
- filename: imex_epilog.sh
743-
content: |
744-
#!/usr/bin/env bash
745-
set -ex
746-
747-
if ! systemctl list-unit-files --all | grep -Fq "nvidia-imex.service"; then
748-
exit 0
749-
fi
750-
751-
# Clean the config file in case the service gets started by accident
752-
> /etc/nvidia-imex/nodes_config.cfg
753-
754-
NVIDIA_IMEX_STOP_TIMEOUT=30
755-
756-
# clean up connection
757-
set +e
758-
759-
timeout $NVIDIA_IMEX_STOP_TIMEOUT systemctl stop nvidia-imex
760-
761-
pkill -9 nvidia-imex
762-
set -e

0 commit comments

Comments
 (0)