From 3ca91f8a5a09d991348fffb9fae903073290ef27 Mon Sep 17 00:00:00 2001 From: janEbert <janpublicebert@posteo.net> Date: Sun, 3 Nov 2024 15:53:37 +0100 Subject: [PATCH] Improve activation script resiliency This way, it doesn't mess with the `curr_dir` in the `sbatch` script but doesn't require a directory stack, all while not being influenced by outside variables. --- pytorch-ddp-example/activate.sh | 18 ++++++++---------- pytorch-fsdp-example/activate.sh | 18 ++++++++---------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/pytorch-ddp-example/activate.sh b/pytorch-ddp-example/activate.sh index a0b9a2a..358e283 100644 --- a/pytorch-ddp-example/activate.sh +++ b/pytorch-ddp-example/activate.sh @@ -1,29 +1,27 @@ #!/usr/bin/env bash -if [ -z "$curr_dir" ]; then - curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" - curr_dir="$(dirname "$curr_file")" -fi +_curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" +_curr_dir="$(dirname "$_curr_file")" -venv_dir="$curr_dir"/env-"$SYSTEMNAME" +venv_dir="$_curr_dir"/env-"$SYSTEMNAME" [ "$(command -v deactivate)" ] && deactivate module --force purge -if ! [ -f "$curr_dir"/modules.sh ]; then - echo "Cannot find \`$curr_dir/modules.sh\`; its existence is required." +if ! [ -f "$_curr_dir"/modules.sh ]; then + echo "Cannot find \`$_curr_dir/modules.sh\`; its existence is required." return 1 fi -source "$curr_dir"/modules.sh +source "$_curr_dir"/modules.sh if ! [ -d "$venv_dir" ]; then - echo "Please manually execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ + echo "Please manually execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \ "on a login node to create the \`venv\`." return 1 elif ! [ -f "$venv_dir"/bin/activate ]; then echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \ "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \ - "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ + "execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \ "on a login node to re-create the \`venv\`." return 1 fi diff --git a/pytorch-fsdp-example/activate.sh b/pytorch-fsdp-example/activate.sh index a0b9a2a..358e283 100644 --- a/pytorch-fsdp-example/activate.sh +++ b/pytorch-fsdp-example/activate.sh @@ -1,29 +1,27 @@ #!/usr/bin/env bash -if [ -z "$curr_dir" ]; then - curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" - curr_dir="$(dirname "$curr_file")" -fi +_curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" +_curr_dir="$(dirname "$_curr_file")" -venv_dir="$curr_dir"/env-"$SYSTEMNAME" +venv_dir="$_curr_dir"/env-"$SYSTEMNAME" [ "$(command -v deactivate)" ] && deactivate module --force purge -if ! [ -f "$curr_dir"/modules.sh ]; then - echo "Cannot find \`$curr_dir/modules.sh\`; its existence is required." +if ! [ -f "$_curr_dir"/modules.sh ]; then + echo "Cannot find \`$_curr_dir/modules.sh\`; its existence is required." return 1 fi -source "$curr_dir"/modules.sh +source "$_curr_dir"/modules.sh if ! [ -d "$venv_dir" ]; then - echo "Please manually execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ + echo "Please manually execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \ "on a login node to create the \`venv\`." return 1 elif ! [ -f "$venv_dir"/bin/activate ]; then echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \ "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \ - "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ + "execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \ "on a login node to re-create the \`venv\`." return 1 fi -- GitLab