::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