charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- From: Tom Quinn <trq AT astro.washington.edu>
- To: "charm AT lists.cs.illinois.edu" <charm AT lists.cs.illinois.edu>
- Subject: [charm] Yielding for other work
- Date: Wed, 2 Nov 2016 16:15:48 -0700 (PDT)
In ChaNGa, we have a "loop" that looks like the following:
void TreePiece::nextBucketSmooth(dummyMsg *msg){
smoothNextBucket();
currentBucket++;
if (currentBucket<numBuckets) { // Queue up the next set
thisProxy[thisIndex].nextBucketSmooth(msg);
} else {
delete msg;
}
}
The point of sending a message to itself is to allow other entries to execute. The obvious problem with this loop is that it generates a ton of projection events. Is CthYield() a better way to do this? Is there a way of detecting whether the current PE has messages waiting in the execution queue?
Tom Quinn Astronomy, University of Washington
Internet:
trq AT astro.washington.edu
Phone: 206-685-9009
- [charm] Yielding for other work, Tom Quinn, 11/02/2016
- Re: [charm] Yielding for other work, Kale, Laxmikant V, 11/02/2016
Archive powered by MHonArc 2.6.19.