[comp.sys.transputer] VCX Questions/Answers

stalker@CAPSRV.JHUAPL.EDU ("M STALKER , OFFSITE", SYSCON) (09/25/90)

****************************************************************************

>From:      Mario D. Stalker                     Date: 9-24-90
To:        Joelle Prevost
           joelle@alpe.imag.fr 
           L.M.C./algo parallele 76 57 48 14

Subject:   V.C.X. Information

Dear Miss Prevost:

        Your questions about VCX are extremelly helpful to me, specially now 
that I am writing VCX's documentation and User Manual.  Your comments points 
out some areas of weakness in my explanation of VCX; they help me identify 
these areas and make the necessary corrections.  I will try to answer your 
first 3 questions.  The fourth question will be partially answered because I 
would like to  build a simple example of "datagram routing" to provide a more 
descriptive explanation. 

        I would like to know a little more about your work with transputer 
systems; can you tell me what type of projects you are involved with?  What 
kind of development tools and compilers you are presently using? etc. 
 
I will now proceed to answer questions 1 - 3:

QUESTION #1  You say something like "the user might use the RTG tool to find 
             the appropriate hardwired configuration". As I understand the 
             Fig.2, the user will find it by testing many ".nif" files and 
             looking at the ".lis" files to of them ?

ANSWER:      I am assuming that you are familiar with the Logical System "C"
             compiler and with the format of the "network information file"
             (.nif).  If not, let me know and I will explain this in more
             detail.
             
             You have the right idea!!  Yes, the user will run the RTG tool on 
             a series of ".nif" files and them will look at the output of the 
             RGT to see which virtual configuration gives the best routing
             tables (the one with shortest paths).  I will give you an example
             which shows two ".nif" files and the output generated by RTG for
             each one of them.  This example uses the same physical network 
             hardwired configuration shown in Figure 8, page 19.  However, 
             the node id numbers assigned follow a different pattern:

             Physical network: 10 transputers
             
             case_1.nif: represents a pipeline virtual configuration

             case_2.nif: represents a tree virtual configuration
             










2
This is the (case_1.nif) file:
--------------------------------------------------------------------
-- SYSCON CORPORATION (c) 1990;         Developer: Mario Stalker  --
--                                                                --
-- April 3, 1990                        file name: case_1.nif     --
--                                                                --
-- This file contains the configuration information for a network --
-- with a topology of a pipeline.  The topology in this case is a --
-- worst case scenario as far as communications efficency is      --
-- concerned.  It yields a minimum total average of 3.44 hops.    --
-- The minimum average for node 1 (FARMER/COLLECTOR) is 3.89 hops --
-- (see page 20 of Technical Report for a description of a hop).  --
--------------------------------------------------------------------
 1, root_nod , R0, 0,  ,  , 2;
 2, work_nod , R1, 1,  , 3,  ;
 3, work_nod , R2,  ,  , 4, 2;
 4, work_nod , R3,  ,  , 5, 3;
 5, work_nod , R4, 6,  ,  , 4;
 6, work_nod , R5,  , 5, 7,  ;
 7, work_nod , R6,  ,  , 8, 6;
 8, work_nod , R7,  ,  , 9, 7;
 9, work_nod , R8,  ,10,  , 8;
10, work_nod , R9,  ,  ,  , 9;

=========================================================================

This is the statistical information (case_1.lis) file:
*******************************************************************
*                                                                 *
*        ROUTING TABLE GENERATOR - Rev. 1.1 -  Mario Stalker      *
*                                                                 *
*        SYSCON CORPORATION  November 1989 (c)                    *
*                                                                 *
*******************************************************************

Input file: case_1.nif       Date and time: Tue Apr  3 07:32:06 1990

DISPLAYING NETWORK STATISTICS ...

Number of nodes:    10 (not including node 0)
Number of paths:    88
Cyclic paths:        0 (found and deleted)
Deleted paths:     0.0 (percentage)

DISPLAYING RESULTS (verbose level 1)
----------------------------------------------------------------------------------------

Hops Statistics:

First column:  source node id
Second column: max. hops average from source to all nodes
Third column:  min. hops average from source to all nodes
Between ():    min. hops average from all nodes to source

source:  1 - max. hops average:  3.89 -   min. hops average:  3.89 ( 3.89)
source:  2 - max. hops average:  4.11 -   min. hops average:  4.11 ( 4.11)
source:  3 - max. hops average:  3.44 -   min. hops average:  3.44 ( 3.44)
source:  4 - max. hops average:  3.00 -   min. hops average:  3.00 ( 3.00)
source:  5 - max. hops average:  2.78 -   min. hops average:  2.78 ( 2.78)
source:  6 - max. hops average:  2.78 -   min. hops average:  2.78 ( 2.78)
3
source:  7 - max. hops average:  3.00 -   min. hops average:  3.00 ( 3.00)
source:  8 - max. hops average:  3.44 -   min. hops average:  3.44 ( 3.44)
source:  9 - max. hops average:  4.11 -   min. hops average:  4.11 ( 4.11)
source: 10 - max. hops average:  3.89 -   min. hops average:  3.89 ( 3.89)

            Total max. average:  3.44    Total min. average:  3.44

The following information can be displayed in four verbose levels; this is
the less verbose level and contains the source/destination pairs which are
connected by the longest paths. 

src:   1   max. hops: 8   dest:   9
----------------------------------------------------------------------------------------
src:   2   max. hops: 8   dest:  10
----------------------------------------------------------------------------------------
src:   3   max. hops: 7   dest:  10
----------------------------------------------------------------------------------------
src:   4   max. hops: 6   dest:  10
----------------------------------------------------------------------------------------
src:   5   max. hops: 5   dest:  10
----------------------------------------------------------------------------------------
src:   6   max. hops: 5   dest:   1
----------------------------------------------------------------------------------------
src:   7   max. hops: 6   dest:   1
----------------------------------------------------------------------------------------
src:   8   max. hops: 7   dest:   1
----------------------------------------------------------------------------------------
src:   9   max. hops: 8   dest:   1
----------------------------------------------------------------------------------------
src:  10   max. hops: 8   dest:   2
----------------------------------------------------------------------------------------

=========================================================================

This is a set of routing tables (generated by RTG), contained in case_1.rot 
file:
 
*******************************************************************
*                                                                 *
*        ROUTING TABLE GENERATOR - Rev. 1.1 -  Mario Stalker      *
*                                                                 *
*        SYSCON CORPORATION  November 1989 (c)                    *
*                                                                 *
*******************************************************************

Input file: case_1.nif       Date and time: Tue Apr  3 07:32:08 1990

num_nodes  10;             <-- Number of nodes found in the network --

node 1 (source);           <-- This is the routing table for node 1 --
      dest_node   1;       
      dest_node   2,   3;  
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;  <-- This line says that to go from node 1
      dest_node   6,   3;      to node 5, the datagram should exit the
      dest_node   7,   3;      source node through link 3.
      dest_node   8,   3;
      dest_node   9,   3;
      dest_node  10,   3;

4
node   2;                  <-- This is the routing table for node 2 --
      dest_node   1,   0;
      dest_node   2;
      dest_node   3,   2;
      dest_node   4,   2;
      dest_node   5,   2;
      dest_node   6,   2;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

node   3;                  <-- This is the routing table for node 3 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3;
      dest_node   4,   2;
      dest_node   5,   2;
      dest_node   6,   2;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

node   4;                  <-- This is the routing table for node 4 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4;
      dest_node   5,   2;
      dest_node   6,   2;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

node   5;                  <-- This is the routing table for node 5 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5;
      dest_node   6,   0;
      dest_node   7,   0;
      dest_node   8,   0;
      dest_node   9,   0;
      dest_node  10,   0;

node   6;                  <-- This is the routing table for node 6 --
      dest_node   1,   1;
      dest_node   2,   1;
      dest_node   3,   1;
      dest_node   4,   1;
      dest_node   5,   1;
      dest_node   6;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

5
node   7;                  <-- This is the routing table for node 7 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6,   3;
      dest_node   7;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

node   8;                  <-- This is the routing table for node 8 -- 
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6,   3;
      dest_node   7,   3;
      dest_node   8;
      dest_node   9,   2;
      dest_node  10,   2;

node   9;                  <-- This is the routing table for node 9 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6,   3;
      dest_node   7,   3;
      dest_node   8,   3;
      dest_node   9;
      dest_node  10,   1;

 node  10;                  <-- This is the routing table for node 10 --
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6,   3;
      dest_node   7,   3;
      dest_node   8,   3;
      dest_node   9,   3;
      dest_node  10;

=============================================================================











6
This is the (case_2.nif) file:
----------------------------------------------------------------------
-- SYSCON CORPORATION (c) 1990;          Developer: Mario Stalker   --
--                                                                  --
-- April 3, 1990                         file name: case_2.nif      --
--                                                                  --
-- This file contains configuration information for a network       --
-- with a topology of a three level tree.  It is the most           --
-- efficient configuration for the application under consideration  --
-- FARMER -> WORKERS -> COLLECTOR .  It yields a Total Minimum      --
-- Average of 2.60 hops.  However, there is a minimum average of    --
-- 1.89 hops between node 1 (FARMER/COLLECTOR) and all the WORKERS. --
----------------------------------------------------------------------
 1, root_nod , R0,  0,  ,10, 2;
 2, work_nod , R1,  1, 4, 3, 5;
 3, work_nod , R2,   ,  , 4, 2;
 4, work_nod , R3,  2,  ,  , 3;
 5, work_nod , S2,   ,  , 2,  ;
 6, work_nod , R9,   ,  ,  , 9;
 7, work_nod , R8,   ,10, 8,  ;
 8, work_nod , R10,  ,10,  , 7;
 9, work_nod , S10,  ,10, 6,  ;
10, work_nod , S1,  7, 1, 8, 9;

=========================================================================

This is the (case_2.lis) file for the second case:
*******************************************************************
*                                                                 *
*        ROUTING TABLE GENERATOR - Rev. 1.1 -  Mario Stalker      *
*                                                                 *
*        SYSCON CORPORATION  November 1989 (c)                    *
*                                                                 *
*******************************************************************

Input file: case_2.nif       Date and time: Wed Apr 25 14:56:14 1990


DISPLAYING NETWORK STATISTICS ...

Number of nodes:    10 (not including node 0)
Number of paths:   130
Cyclic paths:        0 (found and deleted)
Deleted paths:     0.0 (percentage)

DISPLAYING RESULTS (verbose level 4)
----------------------------------------------------------------------------------------

Hops Statistics:

First column:  source node id
Second column: max. hops average from source to all nodes
Third column:  min. hops average from source to all nodes
Between ():    min. hops average from all nodes to source

source:  1 - max. hops average:  1.89 -   min. hops average:  1.89 ( 1.89)
source:  2 - max. hops average:  2.33 -   min. hops average:  2.11 ( 2.11)
source:  3 - max. hops average:  3.89 -   min. hops average:  2.89 ( 2.89)
source:  4 - max. hops average:  3.89 -   min. hops average:  2.89 ( 2.89)
source:  5 - max. hops average:  3.00 -   min. hops average:  3.00 ( 3.00)
7
source:  6 - max. hops average:  3.44 -   min. hops average:  3.44 ( 3.44)
source:  7 - max. hops average:  3.67 -   min. hops average:  2.67 ( 2.67)
source:  8 - max. hops average:  3.67 -   min. hops average:  2.67 ( 2.67)
source:  9 - max. hops average:  2.56 -   min. hops average:  2.56 ( 2.56)
source: 10 - max. hops average:  2.11 -   min. hops average:  1.89 ( 1.89)

            Total max. average:  3.04    Total min. average:  2.60

Notice that the following information is displayed at the fourth verbose 
level.  This level provides the distance for each path that goes from source 
to destination.  It also gives an itinerary for each path.  For instance, the 
third line below says that the path which joins source node #1 with 
destination node #3 has 2 hops.  It also says that this path follows the 
itinerary: 

             exit  node #1 through link 3; 
             go to node #2; 
             exit  node #2 through link 2; 
             reach destination node #3.

(Notice that some source/destination pairs have more than one path) 

src:  1  dest:  1  N/A 

src:  1  dest:  2  hops: 1   path:   1:L3 -->  2

src:  1  dest:  3  hops: 2   path:   1:L3 -->  2:L2 -->  3  (see above comments)

src:  1  dest:  4  hops: 2   path:   1:L3 -->  2:L1 -->  4

src:  1  dest:  5  hops: 2   path:   1:L3 -->  2:L3 -->  5

src:  1  dest:  6  hops: 3   path:   1:L2 --> 10:L3 -->  9:L2 -->  6

src:  1  dest:  7  hops: 2   path:   1:L2 --> 10:L0 -->  7

src:  1  dest:  8  hops: 2   path:   1:L2 --> 10:L2 -->  8

src:  1  dest:  9  hops: 2   path:   1:L2 --> 10:L3 -->  9

src:  1  dest: 10  hops: 1   path:   1:L2 --> 10

----------------------------------------------------------------------------------------
src:  2  dest:  1  hops: 1   path:   2:L0 -->  1

src:  2  dest:  2  N/A 

src:  2  dest:  3  hops: 1   path:   2:L2 -->  3
                   hops: 2   path:   2:L1 -->  4:L3 -->  3

src:  2  dest:  4  hops: 1   path:   2:L1 -->  4
                   hops: 2   path:   2:L2 -->  3:L2 -->  4

src:  2  dest:  5  hops: 1   path:   2:L3 -->  5

src:  2  dest:  6  hops: 4   path:   2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6

src:  2  dest:  7  hops: 3   path:   2:L0 -->  1:L2 --> 10:L0 -->  7

src:  2  dest:  8  hops: 3   path:   2:L0 -->  1:L2 --> 10:L2 -->  8

8
src:  2  dest:  9  hops: 3   path:   2:L0 -->  1:L2 --> 10:L3 -->  9

src:  2  dest: 10  hops: 2   path:   2:L0 -->  1:L2 --> 10

----------------------------------------------------------------------------------------
src:  3  dest:  1  hops: 2   path:   3:L3 -->  2:L0 -->  1
                   hops: 3   path:   3:L2 -->  4:L0 -->  2:L0 -->  1

src:  3  dest:  2  hops: 1   path:   3:L3 -->  2
                   hops: 2   path:   3:L2 -->  4:L0 -->  2

src:  3  dest:  3  N/A 

src:  3  dest:  4  hops: 1   path:   3:L2 -->  4
                   hops: 2   path:   3:L3 -->  2:L1 -->  4

src:  3  dest:  5  hops: 2   path:   3:L3 -->  2:L3 -->  5
                   hops: 3   path:   3:L2 -->  4:L0 -->  2:L3 -->  5

src:  3  dest:  6  hops: 5   path:   3:L3 -->  2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6
                   hops: 6   path:   3:L2 -->  4:L0 -->  2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6

src:  3  dest:  7  hops: 4   path:   3:L3 -->  2:L0 -->  1:L2 --> 10:L0 -->  7
                   hops: 5   path:   3:L2 -->  4:L0 -->  2:L0 -->  1:L2 --> 10:L0 -->  7

src:  3  dest:  8  hops: 4   path:   3:L3 -->  2:L0 -->  1:L2 --> 10:L2 -->  8
                   hops: 5   path:   3:L2 -->  4:L0 -->  2:L0 -->  1:L2 --> 10:L2 -->  8

src:  3  dest:  9  hops: 4   path:   3:L3 -->  2:L0 -->  1:L2 --> 10:L3 -->  9
                   hops: 5   path:   3:L2 -->  4:L0 -->  2:L0 -->  1:L2 --> 10:L3 -->  9

src:  3  dest: 10  hops: 3   path:   3:L3 -->  2:L0 -->  1:L2 --> 10
                   hops: 4   path:   3:L2 -->  4:L0 -->  2:L0 -->  1:L2 --> 10

----------------------------------------------------------------------------------------
src:  4  dest:  1  hops: 2   path:   4:L0 -->  2:L0 -->  1
                   hops: 3   path:   4:L3 -->  3:L3 -->  2:L0 -->  1

src:  4  dest:  2  hops: 1   path:   4:L0 -->  2
                   hops: 2   path:   4:L3 -->  3:L3 -->  2

src:  4  dest:  3  hops: 1   path:   4:L3 -->  3
                   hops: 2   path:   4:L0 -->  2:L2 -->  3

src:  4  dest:  4  N/A 

src:  4  dest:  5  hops: 2   path:   4:L0 -->  2:L3 -->  5
                   hops: 3   path:   4:L3 -->  3:L3 -->  2:L3 -->  5

src:  4  dest:  6  hops: 5   path:   4:L0 -->  2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6
                   hops: 6   path:   4:L3 -->  3:L3 -->  2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6

src:  4  dest:  7  hops: 4   path:   4:L0 -->  2:L0 -->  1:L2 --> 10:L0 -->  7
                   hops: 5   path:   4:L3 -->  3:L3 -->  2:L0 -->  1:L2 --> 10:L0 -->  7

src:  4  dest:  8  hops: 4   path:   4:L0 -->  2:L0 -->  1:L2 --> 10:L2 -->  8
                   hops: 5   path:   4:L3 -->  3:L3 -->  2:L0 -->  1:L2 --> 10:L2 -->  8

src:  4  dest:  9  hops: 4   path:   4:L0 -->  2:L0 -->  1:L2 --> 10:L3 -->  9
                   hops: 5   path:   4:L3 -->  3:L3 -->  2:L0 -->  1:L2 --> 10:L3 -->  9

9
src:  4  dest: 10  hops: 3   path:   4:L0 -->  2:L0 -->  1:L2 --> 10
                   hops: 4   path:   4:L3 -->  3:L3 -->  2:L0 -->  1:L2 --> 10

----------------------------------------------------------------------------------------
src:  5  dest:  1  hops: 2   path:   5:L2 -->  2:L0 -->  1

src:  5  dest:  2  hops: 1   path:   5:L2 -->  2

src:  5  dest:  3  hops: 2   path:   5:L2 -->  2:L2 -->  3

src:  5  dest:  4  hops: 2   path:   5:L2 -->  2:L1 -->  4

src:  5  dest:  5  N/A 

src:  5  dest:  6  hops: 5   path:   5:L2 -->  2:L0 -->  1:L2 --> 10:L3 -->  9:L2 -->  6

src:  5  dest:  7  hops: 4   path:   5:L2 -->  2:L0 -->  1:L2 --> 10:L0 -->  7

src:  5  dest:  8  hops: 4   path:   5:L2 -->  2:L0 -->  1:L2 --> 10:L2 -->  8

src:  5  dest:  9  hops: 4   path:   5:L2 -->  2:L0 -->  1:L2 --> 10:L3 -->  9

src:  5  dest: 10  hops: 3   path:   5:L2 -->  2:L0 -->  1:L2 --> 10

----------------------------------------------------------------------------------------
src:  6  dest:  1  hops: 3   path:   6:L3 -->  9:L1 --> 10:L1 -->  1

src:  6  dest:  2  hops: 4   path:   6:L3 -->  9:L1 --> 10:L1 -->  1:L3 -->  2

src:  6  dest:  3  hops: 5   path:   6:L3 -->  9:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3

src:  6  dest:  4  hops: 5   path:   6:L3 -->  9:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4

src:  6  dest:  5  hops: 5   path:   6:L3 -->  9:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5

src:  6  dest:  6  N/A 

src:  6  dest:  7  hops: 3   path:   6:L3 -->  9:L1 --> 10:L0 -->  7

src:  6  dest:  8  hops: 3   path:   6:L3 -->  9:L1 --> 10:L2 -->  8

src:  6  dest:  9  hops: 1   path:   6:L3 -->  9

src:  6  dest: 10  hops: 2   path:   6:L3 -->  9:L1 --> 10

----------------------------------------------------------------------------------------
src:  7  dest:  1  hops: 2   path:   7:L1 --> 10:L1 -->  1
                   hops: 3   path:   7:L2 -->  8:L1 --> 10:L1 -->  1

src:  7  dest:  2  hops: 3   path:   7:L1 --> 10:L1 -->  1:L3 -->  2
                   hops: 4   path:   7:L2 -->  8:L1 --> 10:L1 -->  1:L3 -->  2

src:  7  dest:  3  hops: 4   path:   7:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3
                   hops: 5   path:   7:L2 -->  8:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3

src:  7  dest:  4  hops: 4   path:   7:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4
                   hops: 5   path:   7:L2 -->  8:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4

src:  7  dest:  5  hops: 4   path:   7:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5
                   hops: 5   path:   7:L2 -->  8:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5

10
src:  7  dest:  6  hops: 3   path:   7:L1 --> 10:L3 -->  9:L2 -->  6
                   hops: 4   path:   7:L2 -->  8:L1 --> 10:L3 -->  9:L2 -->  6

src:  7  dest:  7  N/A 

src:  7  dest:  8  hops: 1   path:   7:L2 -->  8
                   hops: 2   path:   7:L1 --> 10:L2 -->  8

src:  7  dest:  9  hops: 2   path:   7:L1 --> 10:L3 -->  9
                   hops: 3   path:   7:L2 -->  8:L1 --> 10:L3 -->  9

src:  7  dest: 10  hops: 1   path:   7:L1 --> 10
                   hops: 2   path:   7:L2 -->  8:L1 --> 10

----------------------------------------------------------------------------------------
src:  8  dest:  1  hops: 2   path:   8:L1 --> 10:L1 -->  1
                   hops: 3   path:   8:L3 -->  7:L1 --> 10:L1 -->  1

src:  8  dest:  2  hops: 3   path:   8:L1 --> 10:L1 -->  1:L3 -->  2
                   hops: 4   path:   8:L3 -->  7:L1 --> 10:L1 -->  1:L3 -->  2

src:  8  dest:  3  hops: 4   path:   8:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3
                   hops: 5   path:   8:L3 -->  7:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3

src:  8  dest:  4  hops: 4   path:   8:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4
                   hops: 5   path:   8:L3 -->  7:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4

src:  8  dest:  5  hops: 4   path:   8:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5
                   hops: 5   path:   8:L3 -->  7:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5

src:  8  dest:  6  hops: 3   path:   8:L1 --> 10:L3 -->  9:L2 -->  6
                   hops: 4   path:   8:L3 -->  7:L1 --> 10:L3 -->  9:L2 -->  6

src:  8  dest:  7  hops: 1   path:   8:L3 -->  7
                   hops: 2   path:   8:L1 --> 10:L0 -->  7

src:  8  dest:  8  N/A 

src:  8  dest:  9  hops: 2   path:   8:L1 --> 10:L3 -->  9
                   hops: 3   path:   8:L3 -->  7:L1 --> 10:L3 -->  9

src:  8  dest: 10  hops: 1   path:   8:L1 --> 10
                   hops: 2   path:   8:L3 -->  7:L1 --> 10

----------------------------------------------------------------------------------------
src:  9  dest:  1  hops: 2   path:   9:L1 --> 10:L1 -->  1

src:  9  dest:  2  hops: 3   path:   9:L1 --> 10:L1 -->  1:L3 -->  2

src:  9  dest:  3  hops: 4   path:   9:L1 --> 10:L1 -->  1:L3 -->  2:L2 -->  3

src:  9  dest:  4  hops: 4   path:   9:L1 --> 10:L1 -->  1:L3 -->  2:L1 -->  4

src:  9  dest:  5  hops: 4   path:   9:L1 --> 10:L1 -->  1:L3 -->  2:L3 -->  5

src:  9  dest:  6  hops: 1   path:   9:L2 -->  6

src:  9  dest:  7  hops: 2   path:   9:L1 --> 10:L0 -->  7

src:  9  dest:  8  hops: 2   path:   9:L1 --> 10:L2 -->  8

11
src:  9  dest:  9  N/A 

src:  9  dest: 10  hops: 1   path:   9:L1 --> 10

----------------------------------------------------------------------------------------
src: 10  dest:  1  hops: 1   path:  10:L1 -->  1

src: 10  dest:  2  hops: 2   path:  10:L1 -->  1:L3 -->  2

src: 10  dest:  3  hops: 3   path:  10:L1 -->  1:L3 -->  2:L2 -->  3

src: 10  dest:  4  hops: 3   path:  10:L1 -->  1:L3 -->  2:L1 -->  4

src: 10  dest:  5  hops: 3   path:  10:L1 -->  1:L3 -->  2:L3 -->  5

src: 10  dest:  6  hops: 2   path:  10:L3 -->  9:L2 -->  6

src: 10  dest:  7  hops: 1   path:  10:L0 -->  7
                   hops: 2   path:  10:L2 -->  8:L3 -->  7

src: 10  dest:  8  hops: 1   path:  10:L2 -->  8
                   hops: 2   path:  10:L0 -->  7:L2 -->  8

src: 10  dest:  9  hops: 1   path:  10:L3 -->  9

src: 10  dest: 10  N/A 

----------------------------------------------------------------------------------------

=============================================================================

This the case_2.rot file:
*******************************************************************
*                                                                 *
*        ROUTING TABLE GENERATOR - Rev. 1.1 -  Mario Stalker      *
*                                                                 *
*        SYSCON CORPORATION  November 1989 (c)                    *
*                                                                 *
*******************************************************************

Input file: case_2.nif       Date and time: Tue Apr  3 07:07:47 1990


num_nodes  10;

node   1;
      dest_node   1;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6,   2;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;




12
node   2;
      dest_node   1,   0;
      dest_node   2;
      dest_node   3,   2,   1;   <-- This indicates two paths
      dest_node   4,   1,   2;
      dest_node   5,   3;
      dest_node   6,   0;
      dest_node   7,   0;
      dest_node   8,   0;
      dest_node   9,   0;
      dest_node  10,   0;

node   3;
      dest_node   1,   3,   2;
      dest_node   2,   3,   2;
      dest_node   3;
      dest_node   4,   2,   3;
      dest_node   5,   3,   2;
      dest_node   6,   3,   2;
      dest_node   7,   3,   2;
      dest_node   8,   3,   2;
      dest_node   9,   3,   2;
      dest_node  10,   3,   2;

node   4;
      dest_node   1,   0,   3;
      dest_node   2,   0,   3;
      dest_node   3,   3,   0;
      dest_node   4;
      dest_node   5,   0,   3;
      dest_node   6,   0,   3;
      dest_node   7,   0,   3;
      dest_node   8,   0,   3;
      dest_node   9,   0,   3;
      dest_node  10,   0,   3;

node   5;
      dest_node   1,   2;
      dest_node   2,   2;
      dest_node   3,   2;
      dest_node   4,   2;
      dest_node   5;
      dest_node   6,   2;
      dest_node   7,   2;
      dest_node   8,   2;
      dest_node   9,   2;
      dest_node  10,   2;

node   6;
      dest_node   1,   3;
      dest_node   2,   3;
      dest_node   3,   3;
      dest_node   4,   3;
      dest_node   5,   3;
      dest_node   6;
      dest_node   7,   3;
      dest_node   8,   3;
      dest_node   9,   3;
      dest_node  10,   3;

13
node   7;
      dest_node   1,   1,   2;
      dest_node   2,   1,   2;
      dest_node   3,   1,   2;
      dest_node   4,   1,   2;
      dest_node   5,   1,   2;
      dest_node   6,   1,   2;
      dest_node   7;
      dest_node   8,   2,   1;
      dest_node   9,   1,   2;
      dest_node  10,   1,   2;

node   8;
      dest_node   1,   1,   3;
      dest_node   2,   1,   3;
      dest_node   3,   1,   3;
      dest_node   4,   1,   3;
      dest_node   5,   1,   3;
      dest_node   6,   1,   3;
      dest_node   7,   3,   1;
      dest_node   8;
      dest_node   9,   1,   3;
      dest_node  10,   1,   3;

node   9;
      dest_node   1,   1;
      dest_node   2,   1;
      dest_node   3,   1;
      dest_node   4,   1;
      dest_node   5,   1;
      dest_node   6,   2;
      dest_node   7,   1;
      dest_node   8,   1;
      dest_node   9;
      dest_node  10,   1;

node  10;
      dest_node   1,   1;
      dest_node   2,   1;
      dest_node   3,   1;
      dest_node   4,   1;
      dest_node   5,   1;
      dest_node   6,   3;
      dest_node   7,   0,   2;
      dest_node   8,   2,   0;
      dest_node   9,   3;
      dest_node  10;
 
============================================================================== 

QUESTION #2  How exactly can be done the "on-the-fly" virtual reconfiguration 
             mentioned page 6 ? 

ANSWER:      One set of routing tables (selected in the command line) is 
             loaded during the initialization routine.  Subsequent sets of 
             routing tables can be dynamically loaded by the application 
             program by simply sending the individual tables as "datagrams".  
             This is done by one process working in the host transputer which 
             reads the new set of routing tables from a file and then send 
             them as "datagrams" to other processes (executing in other 
14
             nodes).  Each of these processes will receive the corresponding 
             new table and overwrite the previous "active" routing table.  The 
             application programmer must take provisions to stop "datagram 
             routing" by any other processes while the new set of routing 
             tables are being dynamically loaded.  

QUESTION #3  Is the Master Routing Table == the set of the Datagram Routing 
             Tables? 

ANSWER:      Yes, as you can see in the example above, the "case_1.rot" and 
             "case_2.rot" files contains a set of 10 individual routing tables 
             (one for each node).  These tables are stored in a file and 
             distributed to every node during the initialization routine, or 
             when the tables are dynamically reloaded. 

QUESTION #4  Is the Destination Channel # of the Process Connectivity Table an 
             absolute number identifying that channel through the whole 
             application? An example of call to the I/O functions would have 
             been useful too. I am not very sure to understand that Channel 
             #01 links AP2 to AP4 in one direction ,and AP4 to AP1 in the 
             other one? 

ANSWER:      The explanation about "The Process Connectivity Table" which I 
             provided in the Technical Report is a little bit confusing.  Let 
             me workout an example and try to explain this in a more straigh-
             forward manner.  I will also rewrite that portion of the 
             Technical Report.   


             <<<< I HOPE I DON'T CONFUSE YOU EVEN MORE!!! >>>>


IF YOU HAVE SOME .NIF FILES, YOU CAN E-MAIL THEM TO ME.  I WILL RUN THEM 
THROUGH THE RTG TOOL AND SEND YOU THE GENERATED .LIS AND .ROT FILES.

*****************************************************************************
For more information contact:   Mario D. Stalker
                                SYSCON Corporation
                                9841 Broken Land Pkwy, Suite 210
                                Columbia, Maryland  21046

   Telephone:     (301) 381-8319
   FAX:           (301) 381-8321

   E-Mail:  stalker@capsrv.jhuapl.edu
_____________________________________________________________________________
|                                                                           |
|  SYSCON Corporation, a subsidiary of Harnischfeger Industries, Inc.       |
|  Corporate Headquarters                                                   |
|  1000 Thomas Jefferson Street, N.W.                                       |
|  Washington, D.C.  20007                                                  |
|                                                                           |
|  System Engineering, Computer Systems, Training and Simulation Systems,   |
|  Facilities Management, Technical Services, Hardware/Software Products.   |
|                                                                           |
|  Parallel Processing Architectures, Real Time Programming, Software Tools |
|  Development.                                                             |
|                                                                           |
|---------------------------------------------------------------------------|
*****************************************************************************