celestialgod

qsub shell script

Nov 26th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.41 KB | None | 0 0
  1. #!/bin/bash
  2. # usage: sh run_rscript.sh matlabScriptName nodeName
  3. if [ "$#" -eq 0 ]; then
  4.   echo "Must input the scrpt name of R."
  5.   exit 1
  6. elif [ "$#" -eq 1 ]; then
  7.   declare nodeName="node34"
  8.   declare queue="matque"
  9.   echo "There is no node input, then use default node34."
  10. elif [ "$#" -eq 2 ]; then
  11.   declare nodeName=$2
  12.   if [ ${nodeName:0:4} == "node" ]; then
  13.     if [ ${nodeName:4:5} == "53" ] || [ ${nodeName:4:5} == "54" ] || [[ ${nodeName:4:5} -ge 22 && ${nodeName:4:5} -le 31 ]]; then
  14.       declare queue="mulque"
  15.     elif [[ ${nodeName:4:5} -ge 61 && ${nodeName:4:5} -le 67 ]]; then
  16.       declare queue="hmque"
  17.     elif [ ${nodeName:4:5} == "21" ] || [[ ${nodeName:4:5} -ge 55 && ${nodeName:4:5} -le 60 ]]; then
  18.       declare queue="dque"
  19.     elif [[ ${nodeName:4:5} -ge 34 && ${nodeName:4:5} -le 36 ]]; then
  20.       declare queue="matque"
  21.     else
  22.       echo "Wrong node number, node number must be 21~31, 34~36 or 53~67."
  23.       exit 1
  24.     fi
  25.   elif [ ${nodeName:0:8} == "himemhpc" ]; then
  26.     declare queue="hmque"
  27.   else
  28.     echo "Wrong input, input must be node + number."
  29.     exit 1
  30.   fi
  31. else
  32.   echo "Too many inputs."
  33.   exit 1
  34. fi
  35.  
  36. echo -e "#!/bin/sh\\n#PBS -l walltime=2400:00:00\\ncd \$PBS_O_WORKDIR" > tmp.sh
  37. echo "/NA/R2012a/bin/matlab < ${1} > " ${1//.m/.out} >> tmp.sh
  38. echo "run the command: qsub -l nodes=$nodeName -q $queue tmp.sh"
  39. eval "qsub -l nodes=$nodeName -q $queue tmp.sh"
Advertisement
Add Comment
Please, Sign In to add comment