From c040e4d90811cc01a8be80a5e238c703fdb8160b Mon Sep 17 00:00:00 2001
From: janEbert <janpublicebert@posteo.net>
Date: Tue, 9 Jul 2024 12:38:41 +0200
Subject: [PATCH] Prefer setting up with `nice`

Good practice in order not to hog the login nodes during setup.
---
 README.md                        | 14 +++++++-------
 pytorch-ddp-example/activate.sh  |  6 +++---
 pytorch-ddp-example/set_up.sh    |  6 +++---
 pytorch-fsdp-example/activate.sh |  6 +++---
 pytorch-fsdp-example/set_up.sh   |  6 +++---
 5 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index 439d30b..43869f0 100644
--- a/README.md
+++ b/README.md
@@ -169,13 +169,13 @@ the same template to your own projects that may use `pip`-installed
 PyTorch versions, or even a container. This also means that you need
 to set up a virtual environment with `torchrun_jsc` installed before
 being able to use the example out-of-the-box. This can be done by
-executing `bash set_up.sh` once on a login node.
+executing `nice bash set_up.sh` once on a login node.
 
 ### Job submission
 
 As a reminder, before being able to submit a job, you have to manually
-create an environment by executing `bash set_up.sh` once on a login
-node.
+create an environment by executing `nice bash set_up.sh` once on a
+login node.
 
 The `sbatch` scripts are written so that they take arguments like a
 usual script. To launch a job with different arguments, you can just
@@ -187,10 +187,10 @@ sbatch run.sbatch --train-num-workers=8 --valid-num-workers=3
 
 ### Interactive use
 
-After the environment has been created by executing `bash set_up.sh`
-once on a login node, it can also be used interactively by activating
-it. This activation has to be done in each new terminal session; it
-does not persist between login sessions:
+After the environment has been created by executing `nice bash
+set_up.sh` once on a login node, it can also be used interactively by
+activating it. This activation has to be done in each new terminal
+session; it does not persist between login sessions:
 
 ```shell
 source activate.sh
diff --git a/pytorch-ddp-example/activate.sh b/pytorch-ddp-example/activate.sh
index 517544b..b6f4c29 100644
--- a/pytorch-ddp-example/activate.sh
+++ b/pytorch-ddp-example/activate.sh
@@ -17,13 +17,13 @@ fi
 source "$curr_dir"/modules.sh
 
 if ! [ -d "$venv_dir" ]; then
-    echo "Please manually execute \`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\`."
     exit 1
 elif ! [ -f "$venv_dir"/bin/activate ]; then
     echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
-         "Please delete it (\`rm -rf ${venv_dir@Q}\`) and" \
-         "execute \`bash ${curr_dir@Q}/set_up.sh\`" \
+         "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
+         "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \
          "on a login node to re-create the \`venv\`."
     exit 1
 fi
diff --git a/pytorch-ddp-example/set_up.sh b/pytorch-ddp-example/set_up.sh
index 9c86a5a..0e45918 100644
--- a/pytorch-ddp-example/set_up.sh
+++ b/pytorch-ddp-example/set_up.sh
@@ -19,8 +19,8 @@ if ! [ -d "$venv_dir" ]; then
 
     if ! [ -f "$venv_dir"/bin/activate ]; then
         echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
-             "Please delete it (\`rm -rf ${venv_dir@Q}\`) and" \
-             "execute \`bash ${curr_dir@Q}/set_up.sh\`" \
+             "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
+             "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \
              "on a login node to re-create the \`venv\`."
         exit 1
     fi
@@ -37,5 +37,5 @@ if ! [ -d "$venv_dir" ]; then
     deactivate
 else
     echo "\`venv\` is already set up at \`$venv_dir\`. Please" \
-         "delete it (\`rm -rf ${venv_dir@Q}\`) to force a re-generation."
+         "delete it (\`nice rm -rf ${venv_dir@Q}\`) to force a re-generation."
 fi
diff --git a/pytorch-fsdp-example/activate.sh b/pytorch-fsdp-example/activate.sh
index 517544b..b6f4c29 100644
--- a/pytorch-fsdp-example/activate.sh
+++ b/pytorch-fsdp-example/activate.sh
@@ -17,13 +17,13 @@ fi
 source "$curr_dir"/modules.sh
 
 if ! [ -d "$venv_dir" ]; then
-    echo "Please manually execute \`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\`."
     exit 1
 elif ! [ -f "$venv_dir"/bin/activate ]; then
     echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
-         "Please delete it (\`rm -rf ${venv_dir@Q}\`) and" \
-         "execute \`bash ${curr_dir@Q}/set_up.sh\`" \
+         "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
+         "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \
          "on a login node to re-create the \`venv\`."
     exit 1
 fi
diff --git a/pytorch-fsdp-example/set_up.sh b/pytorch-fsdp-example/set_up.sh
index 9c86a5a..0e45918 100644
--- a/pytorch-fsdp-example/set_up.sh
+++ b/pytorch-fsdp-example/set_up.sh
@@ -19,8 +19,8 @@ if ! [ -d "$venv_dir" ]; then
 
     if ! [ -f "$venv_dir"/bin/activate ]; then
         echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
-             "Please delete it (\`rm -rf ${venv_dir@Q}\`) and" \
-             "execute \`bash ${curr_dir@Q}/set_up.sh\`" \
+             "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
+             "execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \
              "on a login node to re-create the \`venv\`."
         exit 1
     fi
@@ -37,5 +37,5 @@ if ! [ -d "$venv_dir" ]; then
     deactivate
 else
     echo "\`venv\` is already set up at \`$venv_dir\`. Please" \
-         "delete it (\`rm -rf ${venv_dir@Q}\`) to force a re-generation."
+         "delete it (\`nice rm -rf ${venv_dir@Q}\`) to force a re-generation."
 fi
-- 
GitLab