Funktionsübersicht . . Nicht-blockierende Kommunikation

Hilfesystem für den Message Passing Interface Standard MPI


MPI_Testsome

Testet, ob eine oder mehrere der gegebenen Kommunikationsoperationen beendet sind

Syntax:

Input Parameter InOut Parameter: Aufruf:

#include "mpi.h"
#define  N    32

    int            outcount, size;
    int            array_of_indices[N];
    ...
    MPI_Request    array_of_requests[N];
    MPI_Status     array_of_status[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);
        ...
        outcount=0;
        while (outcount==0) {
            MPI_Testsome(N, array_of_requests, &outcount, array_of_indices, 
                         array_of_status);
            ...
        }
        for (i=0; i<outcount; i++) {
	    MPI_Get_count(&array_of_status[i], MPI_INT, &size);
            ...
        }
        ...
    }
    ...
    for (i=0; i<N; i++) {
        MPI_Request_free(&array_of_requests[i]);
    }
    ...