Ich bin auf das Fehlen dieser Funktion in MPI neugierig:MPI nicht blockierende Sende/recv
MPI_Isendrecv(...);
das heißt eine nicht-blockierende senden und empfangen, kann mir jemand sagen, die Gründe für seine Auslassung?
Ich bin auf das Fehlen dieser Funktion in MPI neugierig:MPI nicht blockierende Sende/recv
MPI_Isendrecv(...);
das heißt eine nicht-blockierende senden und empfangen, kann mir jemand sagen, die Gründe für seine Auslassung?
Meine Annahme ist, dass MPI_SENDRECV
als eine Bequemlichkeit für Programmierer, die Semantik Blockierung verwenden möchten, aber eine Schichtoperation implementieren müssen. Wenn Sie mit nicht blockierender Semantik vertraut sind, sollten Sie einfach die vorhandenen MPI_ISEND
und MPI_IRECV
verwenden.
Interessanterweise wird MPI-3 nicht-blockierende Kollektive hinzufügen (z.B. MPI_IBARRIER
), aber immer noch keine MPI_ISENDRECV
(siehe http://meetings.mpi-forum.org/draft_standard/mpi3.0_draft_2.pdf).
Betrachtet man den Entwurf der ursprünglichen MPI-Spezifikation auf netlib.org, scheint es, dass die Funktion enthalten war, aber dann in der endgültigen MPI 1.0-Spezifikation fallen gelassen wurde. Jetzt bin ich auch neugierig, was der Grund war. –