Skip to Content.
Sympa Menu

charm - [charm] Yielding for other work

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

[charm] Yielding for other work


Chronological Thread 
  • 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




Archive powered by MHonArc 2.6.19.

Top of Page