-
Felix Kleinert authoredFelix Kleinert authored
create_runscripts_HPC.sh 2.32 KiB
#!/bin/csh -x
echo "############################################################"
echo "# #"
echo "# user interaction required #"
echo "# #"
echo "############################################################"
echo
echo "This script creates the HPC batch scripts to run mlt on compute nodes (gpus and develgpus)."
echo "You can modify the created run scripts afterwards if needed."
while true; do
read -p "Do you wish to create run scripts for JUWELS? [yes/no]" yn
case $yn in
[Yy]* ) juwels=True; break;;
[Nn]* ) juwels=False;;
* ) echo "Please answer yes or no.";;
esac
done
while true; do
read -p "Do you wish to create run script for HDFML? [yes/no]" yn
case $yn in
[Yy]* ) hdfml=True; break;;
[Nn]* ) hdfml=False;;
* ) echo "Please answer yes or no.";;
esac
done
budget=''
while [[ $budget == '' ]]
do
echo
read -p "Enter project budget for --account flag: " budget
done
email=`jutil user show -o json | grep email | cut -f2 -d':' | cut -f1 -d',' | cut -f2 -d'"'`
echo
read -p "Enter e-mail address for --mail-user (default: ${email}): " new_email
if [[ -z "$new_email" ]]; then
new_email=$email
fi
# create HPC_logging dir
hpclogging="../HPC_logging/"
mkdir -p $hpclogging
# ordering for looping:
# "partition nGPUs timing"
if [[ $juwels == True ]]; then
for i in "develgpus 2 02:00:00" "gpus 4 08:00:00"; do
set -- $i
cat <<EOT > run_$1.bash
#!/bin/bash -x
#SBATCH --account=${budget}
#SBATCH --nodes=1
#SBATCH --output=${hpclogging}mlt-out.%j
#SBATCH --error=${hpclogging}/mlt-err.%j
#SBATCH --time=$3
#SBATCH --partition=$1
#SBATCH --gres=gpu:$2
#SBATCH --mail-type=ALL
#SBATCH --mail-user=${email}
source mlt_modules_.sh
source venv/bin/activate
timestamp=\`date +"%Y-%m-%d_%H%M-%S"\`
export PYTHONPATH=\${PWD}/venv/lib/python3.6/site-packages:\${PYTHONPATH}
srun python run.py --experiment_date=\$timestamp
EOT
echo "Created runscript: run_$1.bash"
done
fi
echo
echo "You have to run the the following command on a login node to download data:"
echo " \`python run.py'"
echo
echo "Please execute the following command to check if the setup went well:"
echo " \`sbatch run_develgpus.bash'"