Funktionsübersicht . . Kollektive Operationen

Hilfesystem für den Message Passing Interface Standard MPI


MPI_Gather

Sammelt Daten, die in einer Prozeßgruppe verteilt sind, ein

Syntax:

Input Parameter: Output Parameter: Anmerkungen:

Im Empfangspuffer werden die Daten in der Reihenfolge der Ränge der Prozesse in der Gruppe abgelegt; dh. zuerst die von Prozeß 0, dann von Prozeß 1 usw. Der Programmierer ist selbst dafür verantwortlich, daß ein Puffer von ausreichender Größe vorhanden ist.

Aufruf:


#include "mpi.h"
#define ROOT 0

    int numprocs, myid, bufsize;
    int *sendbuf, *recvbuf;

    ...
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Comm_rank(MPI_COMM_WORLD, &myid);
    ...
    ... sendbuf allocieren, belegen ...
    ... bufsize belegen ...
    if (myid==ROOT) {
        ...
        recvbuf=malloc(bufsize*sizeof(int));
    }
    MPI_Gather(sendbuf, bufsize, MPI_INT, recvbuf, bufsize, 
               MPI_INT, ROOT, MPI_COMM_WORLD);
    ...

Beispiel