			Mappipe
			=======

   The purpose of this program is to prove that users can do their own
mapping algorithms under Helios. The program attempts to execute a
Taskforce consisting of eight programs in a pipeline.

    ps all | cat | cat | cat | cat | cat | cat | cat

The program takes a single argument which should be the number of
worker programs. For example,
    mappipe 10
would create a taskforce consisting of the ps program and 10 cat programs.

The resulting taskforces are not necessarily very exciting, but will do as an
example. The taskforce has to be executed on a network of processors
satisfying the following conditions :
   1) every component program must run on its own processor
   2) every component must have the processor to itself
   3) the program pipeline must be maintained. If program y reads from
      program x and writes to program z, then program y's processor
      must be adjacent to program x's and program z's processors
   4) the programs must all run on T800's with at least one megabyte of
      memory, just to make things slightly more complicated.

Furthermore the mapping program must be about as inefficient as can
possibly be achieved, and is probably useless for networks of more than
16 or so processors. The search algorithm used is a simple brute force one.

The program works as follows.
1) get details of the whole current network, by a call to RmGetNetwork()
2) for every processor in the network, check that this processor is a
   suitable place to start the pipeline
3) attempt to get a further n suitable processors by following the links.
   This involves lots of recursion.
4) if all the processors are available, construct the taskforce, map it
   onto the obtained processors, and execute it.


