main

::VIA MPICH APPLICATIONS:

Currently, the via device is specific to Giganet hardware.  In order to use it you must add an environment variable, MPICH_VI_CLIQUES, to the job configuration file detailing which processes can communicate to which others by VI connections.  This is done by adding a via clique definition to the env line.  Everyone in a clique can communicate directly with everyone else in a clique.

CLIQUE := ( LIST ) | PREDEFINED
PREDEFINED := *
LIST := NUMBER | LIST, NUMBER | RANGE | LIST, RANGE
RANGE := NUMBER..NUMBER
NUMBER := 0 to NPROC-1 where NPROC is the number of processes in the job

The following are valid cliques:

*            <= everyone can reach everyone else
(0..3,5)
(1,3,5,7..10)
(4)
(0..5,2..8,10)

A typical job configuration file for MPIRun.exe would look like:

exe c:\temp\slave.exe
env MPICH_VI_CLIQUES=*
hosts
hostA c:\temp\master.exe
hostB
hostC 2

or

exe c:\temp\slave.exe
env MPICH_VI_CLIQUES=(1..3)
hosts
hostA c:\temp\master.exe
hostB
hostC 2

The second example shows a run where the slave processes can communicate with each other by VI but must use tcp to reach the master.

From the command line a typical run would look like this:

mpirun -np 4 -env "MPICH_VI_CLIQUES=*" myapp.exe

main