MPI_Send



  • Es heißt ja, dass MPI_Send blockierend ist. Leider ist mir nicht immer ganz klar, ob damit nur blockierend bis zum Abschluss der eigenen Operation oder eine Art Synchronisationspunkt gemeint ist.

    Wenn nun Prozess 0 send aufruft und Prozess 1 das zugehörige receive - wartet Prozess 0 solange bis die Daten sicher bei Prozess 1 sind (also Abschluss der Receive-Operation) oder reciht es ihm, wenn die Daten erfolgreich versendet sind (zB erfolgreich in einen Sendepuffer geschrieben)?


  • Global Moderator |  Mod

    1. Ausprobieren? Dies ist so ein wichtiger Punkt, dass ich dir rate, ein eigenes Testprogramm zu schreiben, obwohl du im Folgenden schon eine Antwort bekommst.
    2. Was wäre denn an dem, was du beschreibst, blockierend? Das was du beschreibst ist ja geradezu das Bilderbuchbeispiel für nicht blockierend.
    3. Aus jeder Referenz zu MPI-Send:

    This routine may block until the message is received.