TITLE>Lanai Active Message Mapper
The mapper requires two envirnoment variables to be set before running. The first of these is MAP_LEVEL which is a measure of how much of the network you wish to map (in terms of depth of the tree). Due to the way the program is structured this value is restricted to be between 0 and 3. The second environment variable is the MAP_PRIORITY which is the priority of that machine. This is similar to Myricom's priority scheme. Each host must have a unique priority.
The mapper can run in two modes, "master" mode and "slave" mode. In slave mode, (use the -s) flag, the mapper is passive and does not explore the network. A slave waits for maps from a "master" node and then computes it's own routes. On a modest sized network, (like our seven switch 32 node network), a master generates scout packets every 400 usec or so. This is fast enought that multiple masters generate deadlock and FRESes in the network. FRESes currently hose the LCP. The master/slave hack is to run only ONE node as a master, and all the rest as slaves. Since only one node is sending scout packets, deadlock cannot occur.
You must save the output of the master and slaves into a separate files for each priority called XX.route. XX is the MAP_PRIORITY of that host. Run the genroutes.pl perl5 script to create routing files suitable for the Active Messages library. See the comments in the script for how it works. You'll probably want the change the names of the output files.