1
1
openmpi/ompi/mca/coll/tuned
Jelena Pjesivac-Grbovic 3eac49aa59 Adding flow control for leaf nodes in generalized reduce structure.
This "feature" is disabled by default and it should not affect the current performance.

In case when the message size is large and segment size is smaller than eager size for particular interface,
the leaf nodes in generalized reduce function can overflood parent nodes by sending all segments without 
any synchronization.  This can cause the parent to have HIGH number of unexpected messages (think 16MB 
message with 1KB segments for example).  In case of binomial algorithm root node always has at least one
child which is leaf, so this can potentially affect the root's performance significantly [Especially in 
large communicators where root may have quite a few children (binomial tree for example)].
When the segment size is bigger than the eager size, rendezvous protocol ensures that this does 
not happen so it is not necessary.
Originally, the problem was exposed in "infinite" bucket allocator clean up time for "small" segment sizes
(which may explain some "deadlocks" on Thunderbird tests).

To prevent this, we allow user to specify mca parameter "--mca coll_tuned_reduce_algorithm_max_requests NUM"
this limits number of outstanding messages from a leaf node in generalized reduce to the parent to NUM.
Messages are sent as non-blocking synchrnous messages, so syncronization happens at "wait" time.
The synchronization actually improved performance of pipeline and binomial algorithm for large message sizes
with 1KB segments over MX, but I need to test it some more to make sure it is consistent.

Since there is no easy way to find out what is "the eager" size for particular btl, I set the limit to 4000B.
If message/individual segment size is greater than 4000B - we will not use this feature.  This variable may
or may not be exposed as mca parameter later...

I did not have any problems running it and both "default" and "synchronous" tests passed Intel Reduce* tests 
up to 80 processes (over MX).

This commit was SVN r14518.
2007-04-25 20:39:53 +00:00
..
coll_tuned_allgather.c Fix for the special case where np=2 and the sendbuf is set to MPI_IN_PLACE. 2007-03-13 19:01:20 +00:00
coll_tuned_allreduce.c Adding segmented ring algorithm for Allreduce for commutative operations. 2007-02-27 20:32:30 +00:00
coll_tuned_alltoall.c Adding variant of linear alltoall algorithm where the number of 2007-02-20 04:25:00 +00:00
coll_tuned_barrier.c Cleanup of Barrier implementation: 2007-01-10 22:49:43 +00:00
coll_tuned_bcast.c Clean up of generic broadcast function: removing unecessary statements and improving comments. 2007-03-07 21:59:53 +00:00
coll_tuned_component.c Merging in the jjhursey-ft-cr-stable branch (r13912 : HEAD). 2007-03-16 23:11:45 +00:00
coll_tuned_decision_dynamic.c Adding flow control for leaf nodes in generalized reduce structure. 2007-04-25 20:39:53 +00:00
coll_tuned_decision_fixed.c Adding flow control for leaf nodes in generalized reduce structure. 2007-04-25 20:39:53 +00:00
coll_tuned_dynamic_file.c Make coll/tuned dynamic rules more verbose (when promted with --mca coll_base_verbose 1) 2007-04-23 16:34:52 +00:00
coll_tuned_dynamic_file.h Update to have public symbols be consistent; use new prefix rule 2005-12-22 13:49:33 +00:00
coll_tuned_dynamic_rules.c Adding flow control for leaf nodes in generalized reduce structure. 2007-04-25 20:39:53 +00:00
coll_tuned_dynamic_rules.h Adding variant of linear alltoall algorithm where the number of 2007-02-20 04:25:00 +00:00
coll_tuned_forced.c Adding variant of linear alltoall algorithm where the number of 2007-02-20 04:25:00 +00:00
coll_tuned_forced.h Adding variant of linear alltoall algorithm where the number of 2007-02-20 04:25:00 +00:00
coll_tuned_gather.c eliminated the use of MPI_Get_count 2007-03-02 22:57:50 +00:00
coll_tuned_module.c Merging in the jjhursey-ft-cr-stable branch (r13912 : HEAD). 2007-03-16 23:11:45 +00:00
coll_tuned_reduce_scatter.c Adding tuned version of reduce_scatter implementation. 2007-03-05 20:40:39 +00:00
coll_tuned_reduce.c Adding flow control for leaf nodes in generalized reduce structure. 2007-04-25 20:39:53 +00:00
coll_tuned_scatter.c Remove some warnings. 2007-04-02 19:11:06 +00:00
coll_tuned_topo.c added ASCII graph for the topologies 2007-03-02 17:17:14 +00:00
coll_tuned_topo.h added binomial tree based Gather alogrithm, passed IBM and Intel tests 2007-02-28 01:11:01 +00:00
coll_tuned_util.c Adding new Allreduce algorithms, updating allreduce decision function, and cleaning up util. 2007-01-23 01:19:11 +00:00
coll_tuned_util.h Adding new Allreduce algorithms, updating allreduce decision function, and cleaning up util. 2007-01-23 01:19:11 +00:00
coll_tuned.h Adding flow control for leaf nodes in generalized reduce structure. 2007-04-25 20:39:53 +00:00
configure.params Remove unneeded PARAM_INIT_FILE variable in configure.params files used by 2007-01-08 03:44:22 +00:00
Makefile.am Just like r14289 on the ORTE trunk: 2007-04-12 11:19:42 +00:00