Bug #1189

AMPI resumeOnRecv should be a property of the thread, not each comm

Added by Sam White almost 3 years ago. Updated over 2 years ago.

Target version:
Start date:
Due date:
% Done:



Two intertwined issues:
1. resumeOnRecv and resumeOnColl belong to the ampi class, of which there can be multiple instances in an ampiParent, which owns the actual thread to be resumed. Should resumeOnRecv be in ampiParent?
2. AMPI currently uses MPI_COMM_WORLD to lookup its AMPI instance in places, such as when yielding a thread or calling resumeOnRecv. Need to use the actual communicator that the user passed or else shift functionality from ampi to ampiParent.


#1 Updated by Phil Miller almost 3 years ago

  • Priority changed from Normal to High

#2 Updated by Sam White almost 3 years ago

Currently resumeOnRecv is inside the ampi class. Two proposals:
1. Move it inside ampiParent since the thread that is actually resumed on the recv is part of ampiParent anyways. This also gets rid of the need to use a communicator to lookup resumeOnRecv.
2. Move it inside the AmpiRequest class, allowing us to set resumeOnRecv on a per-message basis. What happens

What happens when you have a waitall for both? With #1 whatever the last thing is that touched resumeOnRecv before the waitall will get to determine the resumeOnRecv. Note that this thing could be something that wasn't involved in the waitall. For #2 what do we do if some requests had resumeOnRecv=true and other false? I think if any of them had true then we resume? I think I need to read through all the use cases of resumeOnRecv first...

#3 Updated by Eric Bohm almost 3 years ago

  • Assignee set to Sam White

#4 Updated by Sam White over 2 years ago

Nikhil's fix for this issue is here:

#5 Updated by Sam White over 2 years ago

  • Subject changed from AMPI hardcodes MPI_COMM_WORLD when looking up resumeOnRecv to AMPI resumeOnRecv should be a property of the thread, not each comm
  • Status changed from New to Implemented

#6 Updated by Sam White over 2 years ago

  • Status changed from Implemented to Merged
  • translation missing: en.field_closed_date set to 2017-01-19 16:47:11.990259

Also available in: Atom PDF