FEATURES Compile-Time Optional Extras For Generic NQS
Academic Computing Services , The University of Sheffield
Stuart Herbert (S.Herbert@sheffield.ac.uk)Document copyright ©. All rights reserved.
Abstract
Under grant NTI/48.2 from the New Technologies Sub Committee (NTSC)
of JISC, the University of Sheffield is maintaining a freely-available
version of the Network Queueing System (NQS), the de facto standard
batch processing system for the UNIX operating system.
This document describes the available features which can be added to
Generic NQS at compile time.
Contents
Click here for a plain-text version of this paper. Click here for a copy of this document in Microsoft RTF format, suitable for printing (if available).
Introduction
About This Document
This document
TAMU Feature Set
Introduction
All the features in this chapter were contributed by Dave Safford of
Texam A&M University. A number of these features have been in
Monsanto NQS since 3.36.4, but were closely linked to Dave's IRIX 6
support until recently.
You can enable all of these features by using the -DTAMU option in
your FEATURES entry in the Makefile :
> FEATURES = -DTAMU
`Cost' Accounting
Description
This option enables a hook function in Generic NQS called
`nqs_checkbal()', in the source file src/nqs_checkbal.c. You can
then modify this hook function to report whether a user has exceeded
their budgeted time on the system or not.
Benefits
By modifying the hook function to request data from your favourite
database, you can, in conjunction with dynamic scheduling (below),
implement full Larmouth scheduling.
Drawbacks
As supplied, this feature does nothing - you have to finish the
implementation to suit local needs.
How To Enable
You can enable dynamic scheduling by using the -DNQS_CHECKBAL
option in your FEATURES entry in the Makefile :
> FEATURES = -DNQS_CHECKBAL
Dynamic Scheduling
Description
This option makes Generic NQS resort all its queues every time it is
about to try and run a request, and every time a request finishes.
During this sorting, it repeatedly uses the function `bsc_compare()'
(in src/nqs_bsc.c) to determine the new order of each queue in turn.
Benefits
There are two real benefits to enabling this option :
- The supplied `bsc_compare()' function resorts the queues so that
users who submit more jobs than the current user_limit find that
their jobs are assigned a lower priority.
Previously, a number of sites, including Sheffield, have relied on
users respecting the limits of queues. Now, they are enforced in
a very effective manner.
- You can modify the `bsc_compare()' function to perform any
additional scheduling you like.
Drawbacks
The only possible drawback is that your users will have to be a
little more circumspect as to the number of jobs they submit to NQS
at a time ...
How To Enable
You can enable dynamic scheduling by using the -DNQS_DYNAMICSCHED
option in your FEATURES entry in the Makefile :
> FEATURES = -DNQS_DYNAMICSCHED
Processor Set Support
Description
The IRIX 5.x and 6.x operating systems include an unusual way of
managing multiple processor hardware. You can create `processor
sets', which are sets of processors. You can then limit any
arbitary process to run on only those processors listed in any
arbitary processor set, by using the /sbin/pset command.
Generic NQS supports the use of these processor sets, by attempting
to place all requests for a given queue into the processor set which
has the same name as the queue does.
Benefits
The benefit of enabling this option is that you can use processor
sets to limit the number of processes tied up with batch work.
Drawbacks
The drawback is that you need to ensure that your queues have the
same names as your processor sets.
How To Enable
You can enable dynamic scheduling by using the -DNQS_PSET
option in your FEATURES entry in the Makefile :
> FEATURES = -DNQS_PSET
TMPDIR Temporary Working Directory
Description
With this option, Generic NQS creates a runtime temporary directory
for sole use by an arbitary running request. The TMPDIR variable
points to the directory. This directory is removed once the request
has finished.
This duplicates functionality to be found in CraySoft NQE.
Benefits
- Applications can use temporary scratch space without having to
worry about clashes with temporary files created by any other
process.
- All temporary files created by a running request, which uses
this variable, are deleted automatically.
Drawbacks
None that I know of.
How To Enable
You can enable dynamic scheduling by using the -DNQS_TMPDIR
option in your FEATURES entry in the Makefile :
> FEATURES = -DNQS_TMPDIR
Miscellaneous Features
NIS Netgroup Support
Description
This option enables NQS to understand entries in /etc/hosts.equiv
which use NIS netgroups. For more information about NIS, please
consult a relevant manual.
Benefits
If you use NIS at your site, then this option allows NQS to be
better integrated with your use of NIS.
Drawbacks
If your operating system does not support NIS, then you may
experience problems with user validation, and you should not enable
this feature.
How To Enable
You can enable dynamic scheduling by using the -DNQS_NIS option in
your FEATURES entry in the Makefile :
> FEATURES = -DNQS_NIS
|