[Mpi-forum] MPI_T Events für Request Completion Callbacks

Joseph Schuchart schuchart at hlrs.de
Mon Nov 25 09:50:22 CST 2019


Sorry y'all, this wasn't meant for everyone :( I really need to fix my 
thunderbird's address book...

On 11/25/19 3:43 PM, Joseph Schuchart via mpi-forum wrote:
> Hallo Marc-André,
> 
> Jannis und ich hatten uns auf der SC kurz über MPI und Task-basierte 
> Programmiermodelle ausgetauscht. Wir sind uns mehr oder wenig einig, 
> dass MPI ein Interface braucht, das es dem Nutzer erlaubt asynchron über 
> den Abschluss von Operationen hinter einem Requests benachrichtigt zu 
> werden (sprich, ohne bzw bevor das Test/Wait auf dem Request aufgerufen 
> wird). Jannis (und ich glaube auch Martin) hatte in dem Kontext das 
> MPI_T Event Interface erwähnt um über die Events eine Benachrichtigung 
> zu bekommen. Da du leider nicht da warst wollten wir dich mal in die 
> Diskussion aufnehmen und fragen was mit den Events möglich ist:
> 
> 1) Aynchrone Benachrichtigung über einen Callback sobald der Request als 
> completed erkannt wird?
> 2) Irgendeine Art von Nutzdaten die man an MPI übergeben kann und die 
> dann an den Callback übergeben werden?
> 3) Eine Garantie wann der Callback ausgeführt wird? (nicht zwingend 
> nötig, "immediately" wäre aber schön ^^)
> 
> Punkt 2 ist wichtig um zu vermeiden, dass die Anwendung zB ein Mapping 
> von Request auf das Objekt halten muss das von dem Request abhängt, zB 
> ein Task. Das würde mMn viel von den Vorteilen zunichte machen weil die 
> Anwendung dann wieder Speicher allokieren und sich um Locking etc 
> kümmern muss.
> 
> Aktuell schwebt mir sowas hier vor:
> 
> ```
> void completion_cb(void *data)
> {
>    omp_event_handle_t *event = (omp_event_handle_t*)data;
>    omp_fulfill_event(*event);
> }
> 
> [...]
> 
> omp_event_handle_t event;
> 
> #pragma omp task detach(event)
> {
>    MPI_Request req;
>    MPI_Isend(..., &req);
>    MPI_Request_on_completion(request, &completion_cb, &event);
> }
> ```
> 
> Ich arbeite gerade an einem Prototypen in Open MPI. Wenn sich das so 
> oder so ähnlich aber mit den MPI_T Events lösen lässt wäre es natürlich 
> umso besser. Ich glaube aber, dass Punkt 2 der Knackpunkt ist, oder?
> 
> 
> Best Grüße
> Joseph


More information about the mpi-forum mailing list