Delen via


MPI_Igather functie

Verzamelt gegevens van alle leden van een groep tot één lid op een niet-blokkerende manier.

Syntaxis

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parameters

  • sendbuf [in]
    De aanwijzer naar een buffer met de gegevens die naar de hoofdmap moeten worden verzonden. De buffer bestaat uit zendaantal opeenvolgende elementen van de MPI_Datatype aangegeven door de sendtype-ingang . De berichtlengte wordt opgegeven in termen van het aantal elementen, niet in het aantal bytes.

  • sendcount
    Het aantal sendtype-elementen in sendbuf. Als de waarde nul is, is het gegevensgedeelte van het bericht leeg.

  • sendtype
    De MPI_Datatype ingang die het gegevenstype van elk element in sendbuf vertegenwoordigt.

  • recvbuf [uit, optioneel]
    De aanwijzer naar een buffer met de gegevens die zijn ontvangen van elk proces in de hoofdmap, inclusief gegevens die door het hoofdproces worden verzonden (alleen significant in de hoofdmap). De ontvangstbuffer recvbuf wordt genegeerd voor alle niet-hoofdprocessen. In het basisproces bestaat recvbufuit opeenvolgende elementen van de MPI_Datatype aangegeven door de recvtype-ingang . De berichtlengte wordt opgegeven in termen van het aantal elementen, niet in het aantal bytes.

  • aantal [ in]
    Het aantal recvtype-elementen in recvbuf. Als de waarde nul is, is het gegevensgedeelte van het bericht leeg (alleen significant in de hoofdmap).

  • recvtype [in]
    De MPI_Datatype ingang die het gegevenstype van elk element in recvbuf vertegenwoordigt (alleen significant in de hoofdmap).

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

  • comm [in]
    De MPI_Comm communicator-ingang.

  • aanvraag [uit]
    De MPI_Request ingang die de communicatiebewerking vertegenwoordigt.

Retourwaarde

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

In Fortran wordt de retourwaarde opgeslagen in de parameter IERROR .

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Opmerkingen

Een niet-blokkerende oproep initieert een collectieve verzamelbewerking die moet worden voltooid in een afzonderlijke voltooiingsoproep. Zodra de bewerking is geïnitieerd, kan deze onafhankelijk van berekeningen of andere communicatie bij de deelnemende processen worden voortgezet. Op deze manier kunnen niet-blokkerende verzamelbewerkingen mogelijke synchronisatie-effecten van verzamelbewerkingen beperken door ze op de 'achtergrond' uit te voeren.

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

Vereisten

Product

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

Collectieve MPI-functies

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome