[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