Runtime environment variable options


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