charmplusplus / charm

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

method to distribute message receives across pes in node #639

Open jcphill opened 9 years ago

jcphill commented 9 years ago

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


If I have a group or array chare that needs to send a large number of messsages while the rest of the pes in the node have nothing more urgent to do I can use CkLoop to distribute the send work. On the other hand, if a group or array chare needs to receive a large number of urgent messages there is no corresponding mechanism to distribute this work to other threads in the node. The workaround is to send the messages to a nodegroup proxy that then directly calls a member function on the chare object regardless of the pe it belongs to and uses atomics to count the number of messages received. This means the sender has to know which node the target chare lives on and the nodegroup proxy needs to have pointers to all of the target objects. This could be handled more cleanly through the runtime, and ideally expressed in sdag as a parallel for loop or other control structure.

PhilMiller commented 5 years ago

Original date: 2016-01-18 00:19:11


I believe the task construct Harshitha is working on should directly address this exact use case.

harshithamenon commented 5 years ago

Original date: 2016-01-18 00:49:04


I have an implementation of the task queue and parallel for using it but not sdag construct yet. Jim, if you have a specific case where this is required and it could benefit can you please share it with us so that I can try it out?

jcphill commented 5 years ago

Original date: 2016-01-18 01:59:27


One NAMD use case was PME FFT transposes, specifically NodePmeMgr methods recvTrans, recvUntrans, recvUngrid, recv[XY]Trans, recv[YZ]Untrans.

stwhite91 commented 5 years ago

Original date: 2017-01-17 03:18:12


Reassigning to PPL for now since Harshitha graduated...