-
I've been playing with reductions that use This is not what I would have expected. Rather, I would expect that I would not be able to count on the order of the results in the message passed to the callback, and I would need to index and sort those results before I do anything with them. It makes my life easier if I don't need to do that, but I can't find anyplace that says |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
I was just getting lucky. Messing around with parameters more (especially number of processors) made the results more arbitrary in their return order. |
Beta Was this translation helpful? Give feedback.
-
concat makes no guarantees on ordering because doing otherwise would impose performance overheads on those kinds of reductions. In Charm++ the contributors to reductions are migratable, so the natural index ordering of contributors is not guaranteed to match their ordering across the physical PEs and Nodes of the system. This means that imposing an ordering would in general require extra communication. If you do want to know who has contributed each subarray of a reduction, you can use a 'set' reducer, or else a 'tuple' reduction which is composed of two 'concat' reductions (one for the actual data contributions, one for the index of the contributor-- the two contributions are guaranteed to stay in the same order as each other). |
Beta Was this translation helpful? Give feedback.
-
Frank, How is it going? We have so few f90charm users that I worry it will get rusty. Please let us know if you encounter difficulties or features that are lacking. And if there successes and results, we'd love to know about them. |
Beta Was this translation helpful? Give feedback.
I was just getting lucky. Messing around with parameters more (especially number of processors) made the results more arbitrary in their return order.