Sep  1 15:02 1995                                           Page 1












				   FEATURES
		   Compile-Time Optional Extras For Generic NQS


			 Academic Computing Services
			 The University of Sheffield


				Stuart Herbert
			 (S.Herbert@sheffield.ac.uk)
Sep  1 15:02 1995                                           Page 2


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.


Sep  1 15:02 1995                                           Page 3


----------------------------
	Contents
----------------------------

1	Introduction

1.1	About This Document

2	TAMU Feature Set

2.1	Introduction
2.2	`Cost' Accounting
2.2.1		Description
2.2.2		Benefits
2.2.3		Drawbacks
2.2.4		How To Enable
2.3	Dynamic Scheduling
2.3.1		Description
2.3.2		Benefits
2.3.3		Drawbacks
2.3.4		How To Enable
2.4	Processor Set Support
2.4.1		Description
2.4.2		Benefits
2.4.3		Drawbacks
2.4.4		How To Enable
2.5	TMPDIR Temporary Working Directory
2.5.1		Description
2.5.2		Benefits
2.5.3		Drawbacks
2.5.4		How To Enable

3	Miscellaneous Features

3.1	NIS Netgroup Support
3.1.1		Description
3.1.2		Benefits
3.1.3		Drawbacks
3.1.4		How To Enable
Sep  1 15:02 1995                                           Page 4


----------------------------
1	Introduction
----------------------------

	--------------------
1.1	About This Document

	This document 

Sep  1 15:02 1995                                           Page 5


----------------------------
2	TAMU Feature Set
----------------------------

	--------------------
2.1	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

	--------------------
2.2	`Cost' Accounting

	----------
2.2.1	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.

	----------
2.2.2	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.

	----------
2.2.3	Drawbacks

	As supplied, this feature does nothing - you have to finish the
	implementation to suit local needs.

	----------
2.2.4	How To Enable

	You can enable dynamic scheduling by using the -DNQS_CHECKBAL
	option in your FEATURES entry in the Makefile :

	>  FEATURES = -DNQS_CHECKBAL

	--------------------
2.3	Dynamic Scheduling

	----------
2.3.1	Description

	This option makes Generic NQS resort all its queues every time it is
Sep  1 15:02 1995                                           Page 6


	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.

	----------
2.3.2	Benefits

	There are two real benefits to enabling this option :

	o  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.

	o  You can modify the `bsc_compare()' function to perform any
	   additional scheduling you like.

	----------
2.3.3	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 ...

	----------
2.3.4	How To Enable

	You can enable dynamic scheduling by using the -DNQS_DYNAMICSCHED
	option in your FEATURES entry in the Makefile :

	>  FEATURES = -DNQS_DYNAMICSCHED

	--------------------
2.4	Processor Set Support

	----------
2.4.1	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.

	----------
2.4.2	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.
Sep  1 15:02 1995                                           Page 7



	----------
2.4.3	Drawbacks

	The drawback is that you need to ensure that your queues have the
	same names as your processor sets.

	----------
2.4.4	How To Enable

	You can enable dynamic scheduling by using the -DNQS_PSET
	option in your FEATURES entry in the Makefile :

	>  FEATURES = -DNQS_PSET

	--------------------
2.5	TMPDIR Temporary Working Directory

	----------
2.5.1	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.

	----------
2.5.2	Benefits

	o  Applications can use temporary scratch space without having to
	   worry about clashes with temporary files created by any other
	   process.

	o  All temporary files created by a running request, which uses
	   this variable, are deleted automatically.

	----------
2.5.3	Drawbacks

	None that I know of.

	----------
2.5.4	How To Enable

	You can enable dynamic scheduling by using the -DNQS_TMPDIR
	option in your FEATURES entry in the Makefile :

	>  FEATURES = -DNQS_TMPDIR

Sep  1 15:02 1995                                           Page 8


----------------------------
3	Miscellaneous Features
----------------------------

	--------------------
3.1	NIS Netgroup Support

	----------
3.1.1	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.

	----------
3.1.2	Benefits

	If you use NIS at your site, then this option allows NQS to be
	better integrated with your use of NIS.

	----------
3.1.3	Drawbacks

	If your operating system does not support NIS, then you may
	experience problems with user validation, and you should not enable
	this feature.

	----------
3.1.4	How To Enable

	You can enable dynamic scheduling by using the -DNQS_NIS option in
	your FEATURES entry in the Makefile :

	>  FEATURES = -DNQS_NIS



----------------------------------------------------------------------------
Stuart Herbert - (S.Herbert@sheffield.ac.uk)
