|> home > support > FAQ > eager|
MP_EAGER_LIMITdo for me?
This parallel environment variable allows the user to select certain tuning values which might influence the performance of an application that has a significant amount of communication time. Some experimentation with these options might be necessary.
The default values for
MP_EAGER_LIMIT, given below, are rather
conservative for HPCx.
# of Tasks MP_EAGER_LIMIT ========== ============== 1 - 16 4096 17 - 32 2048 33 - 64 1024 65 - 128 512 129 - 256 256 >256 128
We recommend putting this to the largest possible value, 65536, for codes which perform significant amounts of message passing, explicitly,
NB, if your code employs many processors, then
MP_EAGER_LIMIT will be
automatically capped by HPCx.
Debugging: If you set
MP_EAGER_LIMIT to zero, then this will test
the validity of your MPI calls, i.e. non-conforming MPI codes which
ran on other machines, and may run on HPCx, may hang/crash when
MP_EAGER_LIMIT is set to zero.
The communication subsystem of the IBM SP uses two methods for data transfer between tasks of a parallel application. Short messages (less than n bytes) are immediately sent to the receiver while long messages require a rendevouz protocol which increases the overhead for message transfer.
To ensure that at least 32 short messages can be outstanding between any two tasks, MP_EAGER_LIMIT will be adjusted based on the number of tasks according to the table given above, when the user has specified neither MP_BUFFER_MEM, nor MP_EAGER_LIMIT, nor MP_USE_FLOW_CONTROL.
If the program sends many short messages which are longer than the default value of MP_EAGER_LIMIT this value may be increased.
|http://www.hpcx.ac.uk/support/FAQ/eager.html||contact email - firstname.lastname@example.org||© UoE HPCX Ltd|