Delen via


MPI_Ireduce, functie

Voert een globale reductiebewerking uit (bijvoorbeeld som, maximum of logisch en) voor alle leden van een groep op een niet-blokkerende manier.

Syntaxis

int MPIAPI MPI_Ireduce(
  _In_      void         *sendbuf,
  _Out_opt_ void         *recvbuf,
  _In_      int          count,
  _In_      MPI_Datatype datatype,
  _In_      MPI_Op       op,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parameters

  • sendbuf [in]
    De aanwijzer naar een buffer met de gegevens uit deze rang die moeten worden gebruikt in de reductie. De buffer bestaat uit aantal opeenvolgende elementen van de MPI_Datatype aangegeven door de gegevenstype ingang. De berichtlengte wordt opgegeven in termen van het aantal elementen, niet het aantal bytes.

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

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

  • gegevenstype [in]
    De MPI_Datatype ingang die het gegevenstype van elk element in sendbuf-vertegenwoordigt.

  • op [in]
    De MPI_Op ingang die aangeeft dat de globale reductiebewerking moet worden uitgevoerd. De ingang kan duiden op een ingebouwde of toepassingsgedefinieerde bewerking. Zie het onderwerp MPI_Op voor een lijst met vooraf gedefinieerde bewerkingen.

  • root [in]
    De rang van het ontvangende proces binnen de MPI_Commcomm.

  • comm [in]
    De MPI_Comm communicatorgreep.

  • [uit]
    De MPI_Request greep die de communicatiebewerking vertegenwoordigt..

Retourwaarde

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

In Fortran wordt de retourwaarde opgeslagen in de parameter IERROR.

Fortran

    MPI_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR) 
        <type> SENDBUF(*), RECVBUF(*) 
        INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR

Opmerkingen

Een niet-blokkerende aanroep initieert een collectieve verminderingsbewerking die moet worden voltooid in een afzonderlijke voltooiingsoproep. Zodra de bewerking is gestart, kan de bewerking onafhankelijk van elke berekening of andere communicatie bij deelnemende processen worden uitgevoerd. Op deze manier kunnen niet-blokkerende reductiebewerkingen mogelijke synchronisatie-effecten van reductiebewerkingen beperken door ze op de achtergrond uit te voeren.

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

Eisen

Product

Microsoft MPI v6

Rubriek

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

collectieve MPI-functies

MPI_Datatype

MPI_Op

MPI_Reduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome