Delen via


MPI_Allreduce functie

Combineert waarden uit alle processen en distribueert het resultaat terug naar alle processen.

Syntaxis

int MPIAPI MPI_Allreduce(
  _In_opt_  const void         *sendbuf,
  _Out_opt_       void         *recvbuf,
  _In_            int          count,
  _In_            MPI_Datatype datatype,
  _In_            MPI_Op       op,
  _In_            MPI_Comm     comm
);

Parameters

  • sendbuf [in, optioneel]
    De aanwijzer naar de gegevens die naar alle processen in de groep moeten worden verzonden. Het aantal en het gegevenstype van de elementen in de buffer worden opgegeven in de parameters count en datatype.

    Als de comm parameter verwijst naar een intracommunicator, kunt u een in place optie opgeven door MPI_IN_PLACE in alle processen op te geven. In dit geval worden de invoergegevens bij elk proces opgehaald uit de ontvangstbuffer, waar deze worden vervangen door de uitvoergegevens.

  • recvbuf [uit, optioneel]
    De aanwijzer naar een buffer om het resultaat van de reductiebewerking te ontvangen. Deze parameter is alleen van belang in het hoofdproces.

  • aantal [in]
    Het aantal elementen dat vanuit dit proces moet worden verzonden.

  • datatype [in]
    De MPI_Datatype van elk element in de buffer. Deze parameter moet compatibel zijn met de bewerking zoals opgegeven in de parameter op .

  • op [in]
    De MPI_Op ingang waarmee de globale reductiebewerking wordt aangegeven die moet worden uitgevoerd. De ingang kan een ingebouwde of door de toepassing gedefinieerde bewerking aangeven. Zie MPI_Op voor een lijst met vooraf gedefinieerde bewerkingen.

  • comm [in]
    De MPI_Comm communicatorgreep.

Retourwaarde

Retourneert MPI_SUCCESS bij succes. Anders is de retourwaarde een foutcode.

In Fortran wordt de retourwaarde opgeslagen in de parameter IERROR .

Fortran

    MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER COUNT, DATATYPE, OP, COMM, IERROR

Opmerkingen

Als comm een intercommunicator is, wordt het resultaat van de vermindering van de gegevens geleverd door processen in groep A opgeslagen bij elk proces in groep B, en omgekeerd. Beide groepen moeten argumenten voor aantal en gegevenstype opgeven die dezelfde typehandtekening opgeven.

Alle voltooiingsoproepen (bijvoorbeeld MPI_Wait) worden ondersteund voor niet-blokkerende reductiebewerkingen.

Vereisten

Product

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package of HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

Collectieve MPI-functies

MPI_Reduce

MPI_Datatype

MPI_Op