   The Remote Troff Execution Package is a set of programs put together
at the University of Maryland in an attempt to redistribute troffs
so that no one machine is loaded down with a large number of troff
jobs while other machines sit idle.  There are a total of five programs
included with this package.  They are:

	(1)  loadd -- a load daemon that responds to requests for
		the load on the machine upon which it is running,
		sending back the 1, 5, and 15 minute load averages
		in fixed-point format.  The load daemon also uses
		information in /etc/loadd.conf to send back an estimate
		of the cpu power of the machine on which it runs (on
		a relative scale); this number, too, is returned in
		fixed-point format.

	(2)  rtroff -- the remote troff program proper, rtroff handles
		choosing the least loaded host in the list in /etc/rtrhosts
		and the copying of files to a troff running on the
		chosen machine.  Rtroff handles elimination of things
		like .so's as it transfers the files around, and should
		behave just like a normal troff for all but the most
		perverse of cases (well, it won't handle .so's in
		macros properly, but what did you expect?)  It is	
		smart enough to exec the troff directly if the local
		load is the lowest one that it finds, and is apparently
		*very* fast; local benchmarks seem to indicate that
		there is a 30-to-1 decrease in the amount of cpu time
		used between a local and a remote troff.  Of course,
		some other machine still gets crippled with the
		troff (i.e. we're not creating cycles out of nothing
		here)...

	(3)  rcatdvi -- a remote implementation of the Imagen catdvi
		program; this program is to catdvi as rtroff is
		to troff in pretty much every respect.

	(4)  ltroff -- a shell script that we use locally to queue
		up our Imagen jobs, with options to send the Impress
		output to stdout and to force a local troff (in
		those perverse cases with which rtroff has problems).

	(5)  load -- a program that one can use from the shell to
		find out if the load is above a certain level; ltroff
		uses this program to determine if the local load is
		high enough to consider going somewhere else.

   This package includes a Makefile, man entries for everything
but rcatdvi (which is so much like catdvi that it doesn't really
need one), and the source for everything.  More detailed installation
instructions can be found in the Makefile.  This package has been
tested on Pyramids, Suns, and vaxen, and seems to be pretty solid.

   I would like to thank Anthony Tse of NRL for his contributions
to this package (his modifications to the original rtroff provided
the impetus for the improvements that have been made to this
program), Fred Blonder, who wrote the original "load", and Chris Torek,
whose ideas as to the *right* way to do things are no doubt responsible
for much of the speed and readability increases present in this version
of rtroff.

   I am interested in hearing about whatever bugs you find in the
code, and in hearing about your opinions in general; feel free to
drop me a line.

	-Steve

Spoken: Steve Miller 	ARPA:	steve@maryland	Phone: +1-301-454-4251
CSNet:	steve@umcp-cs 	UUCP:	{seismo,allegra}!umcp-cs!steve
USPS: Computer Science Dept., University of Maryland, College Park, MD 20742
