Funktionsübersicht . . Nicht-blockierende Kommunikation

Hilfesystem für den Message Passing Interface Standard MPI


MPI_Startall

Startet alle Kommunikationsvorgänge, deren Anforderungen im Request-Array übergeben werden

Syntax:

Input Parameter InOut Parameter: Anmerkung:

Das Ende jeder einzelnen Kommunikation kann mit MPI_Test oder MPI_Wait oder den davon abgleiteten Funktionen getestet werden. Dabei wird das Request-Objekt nicht zerstört, so daß es mehrfach verwendet werden kann. Man kann jederzeit MPI_Request_free rufen, doch das Request-Objekt wird erst dann deallociert, wenn es wieder inaktiv ist (d.h., wenn der damit assoziierte Kommunikationsvorgang beendet ist).

Aufruf:


#include "mpi.h"

    int            count;
    ...
    MPI_Request    array_of_requests[N];
    MPI_Status     stat[N];

    ...
    for (i=0; i<N; i++) {
        MPI_Send_init(buf, count, MPI_INT, i+1, i, comm, &array_of_requests[i]);
    }
    while (again) {
        ... Sendepuffer aktualisieren ...
        MPI_Startall(N, array_of_requests);
        ...
        MPI_Waitall(N, array_of_requests, stat);
        ...
    }
    ...
    for (i=0; i<N; i++) {
        MPI_Request_free(&array_of_requests[i]);
    }
    ...