Up: Tools
Next: Job manager tool
Previous: Apply the updates
There are some lesser used options available to MPICH which can be used to fine
tune the performance to a specific machine. The following environment variables
may be used to set runtime options:
-
MPICH_NETMASK
-
Set this variable to the subnet ip address and mask you want to use to select the
appropriate network adaptor on multi-nic hosts. The form is: IP/Mask, eg 192.0.0.0/8.
The subnet ip address is the partial ip address specifying which bits represent the
subnet part of an ip address. The mask part represents which bits are signifigant
to determine the subnet. For example, 20 = 255.255.240.0
-
MPICH_USE_POLLING
-
Set this variable to 1 to enable polling. The default is to use event objects
to wait on. Polling has lower latency but burns the CPU and can decrease performance
in certain situations.
-
MPICH_SINGLETHREAD
-
Set this variable to 1 to cause the shared memory and via devices to be single threaded.
Single threaded devices have much lower latency but they obey different progress
rules than the multithreaded versions. They only make progress on messge passing
when MPI calls are made. The multi-threaded devices make progress on messages
asynchronously when the message arives.
-
MPICH_SHMQSIZE
-
This value is the size, in bytes, of the shared memory queue for each process.
The default value is 1MB.
-
MPICH_MAXSHMMSG
-
This value is the largest message, measured in bytes, that can be put in the shared
memory queue. This value must be less than or equal to MPICH_SHMQSIZE. Messages
larger than this value are copied directly from the address space of the sender to
the receiver. The default value is 15k.
-
MPICH_LONGVLONGTHRESH
-
-
MPICH_TCPLONGVLONGTHRESH
-
-
MPICH_SHMLONGVLONGTHRESH
-
This value is the message size, in bytes, when the message sending protocol changes
from eager to rendezvous. The default value is for shm is 20k and tcp is 100k. Use
the first variable to set both thresholds or use the protocol specific version to set
an individual threshold.
-
MPICH_NUMCOMMPORTS
-
This value is the number of completion port threads that will be launched by each
process to handle all socket communication. The default is 2.
-
MPICH_VI_USE_POLLING
-
Set this variable to 1 to enable polling in the VIA device. The default is to use
the wait interface. Polling has lower latency but burns the CPU and can decrease
performance in certain situations.
-
MPICH_VERBOSE
-
Set this variable to 1 to cause mpich to spit out loads of internal state as the
application runs. This would be useful to report suspected bugs in mpich.
Examples:
High performance ping pong shared memory test:
mpirun -localonly 2
-env "MPICH_USE_POLLING=1|MPICH_SINGLETHREAD=1"
netpipe.exe
High performance ping pong via test
mpirun -np 2
-env "MPICH_USE_POLLING=1|MPICH_SINGLETHREAD=1|MPICH_VI_CLIQUES=*"
netpipe.exe
Up: Tools
Next: Job manager tool
Previous: Apply the updates