Difference between revisions of "Useful PBS scripts"
Jump to navigation
Jump to search
import>Cen1001 |
import>Mm695 |
||
Line 48: | Line 48: | ||
# get our PBS stats |
# get our PBS stats |
||
+ | qstat -f $PBS_JOBID |
||
+ | |||
+ | == CPMD runscript if several nodes are needed == |
||
+ | |||
+ | # PBS -q s32 |
||
+ | |||
+ | # PBS -l walltime=18:00:00 |
||
+ | |||
+ | # PBS -l nodes=8:ppn=4 |
||
+ | |||
+ | HERE=/home/mm695/whatever |
||
+ | |||
+ | file=dho2498_singlePoint |
||
+ | |||
+ | inpfile=${file}.inp |
||
+ | |||
+ | outfile=${file}.out |
||
+ | |||
+ | SCRATCH=/scratch/mm695/$file |
||
+ | |||
+ | nodes=`cat $PBS_NODEFILE | uniq` |
||
+ | |||
+ | for node in $nodes |
||
+ | do |
||
+ | rsh $node "rm -f $SCRATCH/*" |
||
+ | rsh $node "rmdir $SCRATCH" |
||
+ | rsh $node "mkdir $SCRATCH" |
||
+ | rsh $node "cp ${HERE}/gromos* $SCRATCH" |
||
+ | rsh $node "cp ${HERE}/geom_end_of_sim.crd $SCRATCH" |
||
+ | rsh $node "cp ${HERE}/RESTART $SCRATCH" |
||
+ | rsh $node "cp ${HERE}/${inpfile} $SCRATCH" |
||
+ | done |
||
+ | |||
+ | exe=/home/mm695/SOURCE/cpmd.x |
||
+ | |||
+ | pp=/home/mm695/pseudopot |
||
+ | |||
+ | cd $SCRATCH |
||
+ | |||
+ | # Write out some helpful info to the output file |
||
+ | |||
+ | echo "Starting job $PBS_JOBID" |
||
+ | echo |
||
+ | echo "PBS assigned me this node:" |
||
+ | cat $PBS_NODEFILE |
||
+ | echo |
||
+ | |||
+ | mvapichwrapper $exe $inpfile $pp > ${HERE}/${outfile} |
||
+ | |||
+ | for node in $nodes |
||
+ | do |
||
+ | rsh $node 'mv ${SCRATCH}/* ${HERE}' |
||
+ | rsh $node 'rm -f ${SCRATCH}/*' |
||
+ | rsh $node 'rmdir /scratch/mm695/$file' |
||
+ | done |
||
+ | |||
qstat -f $PBS_JOBID |
qstat -f $PBS_JOBID |
Revision as of 17:37, 12 March 2008
If you have put some effort into writing a PBS job script for a particular type of job, please consider adding it here.
Job script with signal handler
# This is an example PBS job script that can carry out an action to clean up # after itself when the queueing system terminates the job. You could use it to # make your code checkpoint or similar. #PBS -q s4 #PBS -l walltime=2:00:00 WD=/scratch/cen1001/work OUT=$WD/output # A shell function to clean up after an imaginary job. Replace with whatever's # appropriate for your job. cleanup() { cp $OUT /home/cen1001 && rm $OUT } # This function gets called when PBS tells your job to exit. PBS gives a job 60 # seconds to run its exit handler and then terminates it, so whatever this does # must happen in less than 60 seconds. exithandler() { echo "Job was killed" >> $OUT cleanup exit } trap exithandler SIGTERM # The main script starts here mkdir -p $WD # do some busy work that generates output i=0 while [ $i -lt 100 ] do echo $i >> $OUT sleep 2 i=$((i+1)) done # call the cleanup function cleanup # get our PBS stats qstat -f $PBS_JOBID
CPMD runscript if several nodes are needed
# PBS -q s32
# PBS -l walltime=18:00:00
# PBS -l nodes=8:ppn=4
HERE=/home/mm695/whatever
file=dho2498_singlePoint
inpfile=${file}.inp
outfile=${file}.out
SCRATCH=/scratch/mm695/$file
nodes=`cat $PBS_NODEFILE | uniq`
for node in $nodes do rsh $node "rm -f $SCRATCH/*" rsh $node "rmdir $SCRATCH" rsh $node "mkdir $SCRATCH" rsh $node "cp ${HERE}/gromos* $SCRATCH" rsh $node "cp ${HERE}/geom_end_of_sim.crd $SCRATCH" rsh $node "cp ${HERE}/RESTART $SCRATCH" rsh $node "cp ${HERE}/${inpfile} $SCRATCH" done
exe=/home/mm695/SOURCE/cpmd.x
pp=/home/mm695/pseudopot
cd $SCRATCH # Write out some helpful info to the output file
echo "Starting job $PBS_JOBID" echo echo "PBS assigned me this node:" cat $PBS_NODEFILE echo
mvapichwrapper $exe $inpfile $pp > ${HERE}/${outfile}
for node in $nodes do rsh $node 'mv ${SCRATCH}/* ${HERE}' rsh $node 'rm -f ${SCRATCH}/*' rsh $node 'rmdir /scratch/mm695/$file' done
qstat -f $PBS_JOBID