On Sun, Dec 09, 2012 at 04:55:51PM -0800, Jed Brown wrote:
Understood. May I ask what is the application motivating this routine? For the neighbor_reduce, the use-case follows from your earlier emails (you asked explicitly for this on the collectives mailinglist in CAM9tzSmY38bq3gmYqwB5TS5jOv8uwTU9e526tANHDTYgX4XOBg@mail.gmail.com). The neighbor_reducev is a simple generalization and gets closer to what you were asking for. I think it's non-trivial to provide identity elements in the interface while it's not too hard to just put the data into the function (and hopefully not too much overhead).
If you now think there is no use-case for any of those (or both) functions then we should discontinue the discussion of them (I have absolutely no problem with this :-). Best, Torsten
On Dec 9, 2012 1:14 PM, "Torsten Hoefler" <[1][email protected]> wrote:
On Sat, Dec 08, 2012 at 12:49:35PM -0800, Jed Brown wrote: > � �On Sat, Dec 8, 2012 at 11:12 AM, Torsten Hoefler <[1][2][email protected]> > � �wrote: > > � � �Hi all, > > � � �We discussed the neighborhood reductions at the last Forum and the straw > � � �vote if we should include them in the next revision was: > > � � ��- yes: 18 > � � ��- no: 0 > � � ��- abstain: 3 > > � � �I addressed all the issues in the draft that were brought up at the > � � �Forum. The new draft is now at [2][3]http://www.unixer.de/sec/topol.pdf . > � � �Look > � � �for ticket "XXX". > > � �The other interfaces for MPI_Ineighbor_reduce do not contain the "I" (page > � �40, line 25 and 30); MPI_Ineighbor_reducev� > � ��does not have the "v" (page 41, line 26 and 31). Thanks! Those are fixed. [4]http://www.unixer.de/sec/topol.pdf
> � � �One open question remains: would a single send buffer for > � � �neighbor_reduce suffice or do we need one buffer per destination > � � �process? The second case could always be done with neighbor_reducev > � � �(with small additional costs). This questions is more to the potential > � � �users (Jed etc.). > > � �My understanding of Neighbor_reducev is that I send different sizes to > � �each neighbor, but receive the same size from every neighbor (reducing > � �into exactly one buffer). That is correct.
> � �That isn't really a useful operation in domain > � �decomposed methods. The useful operation is that I reduce different sized > � �received buffers into different (but sometimes overlapping) parts of my > � �local buffer. Well, the issue is that MPI reduction operations cannot be applied to vectors of different length because this would require the definition of an identity element. While this is easy for the predefined ops (e.g., "MIN_INT" for int max and "0" for sum, etc.), this would require much more changes for user-defined operations (another call to specify these). The current interface proposal would require you to fill in those elements where needed. Or am I misunderstanding or missing something?
> � �The single send buffer (with different datatype arguments) imposes no > � �restriction and is natural. Thanks!
Best, � Torsten
-- ### qreharg rug ebs fv crryF ------------- [5]http://www.unixer.de/ ----- Torsten Hoefler � � � � � | Assistant Professor Dept. of Computer Science | ETH Z�rich Universit�tsstrasse 6 � � | Zurich-8092, Switzerland CAB E 64.1 � � � � � � � �| Phone: [6]+41 76 309 79 29
References
Visible links 1. mailto:[email protected] 2. mailto:[email protected] 3. http://www.unixer.de/sec/topol.pdf 4. http://www.unixer.de/sec/topol.pdf 5. http://www.unixer.de/ 6. file:///home/htor/tmp/mutt/tel:%2B41%2076%20309%2079%2029
-- ### qreharg rug ebs fv crryF ------------- http://www.unixer.de/ ----- Torsten Hoefler | Assistant Professor Dept. of Computer Science | ETH Z�rich Universit�tsstrasse 6 | Zurich-8092, Switzerland CAB E 64.1 | Phone: +41 76 309 79 29