Some scripts do not use the standard parallel job launcher command (the use other scripts or other commands). Can bolt be changed to support this - is it worth it? Example below from a STAR-CD job on HECToR:
#!/bin/bash --login## job name USER CHOICE#PBS -N rndhts_256# wall time needed for job (could use cput) USER CHOICE#PBS -l walltime=00:20:00# number of MPI tasks USER CHOICE#PBS -l mppwidth=256# number of cores per node #PBS -l mppnppn=32# user account number USER SETS VALUE necessary#PBS -A n02-weat# import the environment from the launch shell#PBS -V# This last option to PBS assumes that the user has set the STAR environment with# . /work/y07/y07/starcd/phase2b/4.14/etc/setstar## Now change directory to the LUSTRE work directory in this case it is where the # job was initiated This could be USER CHOICE i.e. it could be set explicitlycd$PBS_O_WORKDIR# work out how many MPI tasks were requestedexport NTASK=256
# MRI diagnostic - useful for debugecho"DEBUG: NTASK= $NTASK PBS_O_WORKDIR= $PBS_O_WORKDIR PBS_JOBID is $PBS_JOBID"#
BNAME=`basename $STARDIR`
DNAME=`dirname $STARDIR`echo"using BNAME $BNAME and DNAME $DNAME"###if [ -z $LD_LIBRARY_PATH} ] ; then###export LD_LIBRARY_PATH=${DNAME}/lib64###elseecho DEBUG LD_LIBRARY_PATH is $LD_LIBRARY_PATHexport LD_LIBRARY_PATH=${DNAME}/lib64:${LD_LIBRARY_PATH}echo DEBUG LD_LIBRARY_PATH changed to $LD_LIBRARY_PATH###fi## Run STARecho"star -mpi=xt -decompflags="MMET,1" -powersuite -scratch=$PBS_O_WORKDIR -notracker $NTASK"
star -mpi=xt -decompflags="MMET,1" -powersuite -scratch=$PBS_O_WORKDIR -notracker $NTASK# would usually issue "aprun -n $NTASK -a xt (path_to_app)/app <app options>"# but this has been hard-wired into the Cray variation.# it assumes all cores per node to be used for MPI## end of job
A combination of the -l and -r flags should be able to provide more detailed information on the specified resource. Need to add a method to resource.py that prints this detailed information and then modify the main method to print it correctly.
The tool should support the creation of jobs that use both distributed memory and shared-memory (OpenMP) parallelism. This will require configuration options in the 'resource' to specify whether threads are allowed and how their placement is controlled.