charmplusplus / charm

The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Apache License 2.0
207 stars 50 forks source link

Use CkMulticast for collectives on AMPI subcommunicators #1309

Open stwhite91 opened 7 years ago

stwhite91 commented 7 years ago

Original issue: https://charm.cs.illinois.edu/redmine/issues/1309


Currently, AMPI implements all communicators as their own separate chare array instances, and all collectives on those communicators are implemented as chare array broadcasts/reductions. Chare array collectives are sent to and processed by all PEs, regardless of whether or not any element lives on that PE or not. CkMulticast is implemented with an explicit spanning tree across only the PEs that actually have section elements on them, and so do not create extra work for those PEs.

stwhite91 commented 5 years ago

Original date: 2016-11-29 21:28:34


A couple issues we'd like to see resolved in CkMulticast first:

  1. Distributed creation (reducing the cost of recreating the spanning tree initially and after migration)
  2. 64-bit section IDs, so they can be passed around to all elements of a section