(Click to open topic with navigation)
Resource manager extensions within PBS are used by setting the -W flag. To enable this flag, some versions of PBS must be rebuilt. TORQUE and recent OSCAR distributions come with the flag enabled by default. Most other versions do not. The required steps are documented in what follows:
> qterm -t quick
#shutdown PBS server
> make distclean
> ./configure <WITH OPTIONS>
> addparam x
> make
Backup current $PBS_HOMEDIR directory contents
$PBS_HOMEDIR defaults to /usr/spool/PBS.
> make install
> pbs_server # restart PBS server
A job's QoS level can then be specified using the qsub -W flag. For example, qsub -W x=iQOS:hi -l nodes=4 ...
#!/bin/sh
#script: addparam
#usage: addparam $Parameter [S|L]
NewParameter=$1
ParameterType=x$2
if [ ! -d src/include ]; then
echo "error: `basename $0` src/include doesn't exist, run configure"
1>&2
exit 1
fi
# run make in this directory to pull over the template files
cd src/include
if make
then
if grep -q "\"$NewParameter\"" site_*.h 2>/dev/null; then
echo "parameter $NewParameter previously added"
exit 0
fi
fi
chmod +w site_job_attr_enum.h
echo "
JOB_SITE_ATR_$1,
" >> site_job_attr_enum.h
chmod +w site_job_attr_def.h
if [ $ParameterType = "xS" ]
then
echo "
{ \"$NewParameter\",
decode_str,
encode_str,
set_str,
comp_str,
free_str,
NULL_FUNC,
READ_WRITE,
ATR_TYPE_STR,
PARENT_TYPE_JOB
},
" >> site_job_attr_def.h
else
echo "
{ \"$NewParameter\",
decode_l,
encode_l,
set_l,
comp_l,
free_null,
NULL_FUNC,
READ_WRITE,
ATR_TYPE_LONG,
PARENT_TYPE_JOB
},
" >> site_job_attr_def.h
fi
exit 0