Delen via


MPI_Iallgather functie

Verzamelt gegevens van alle leden van een groep en verzendt de gegevens naar alle leden van de groep op een niet-blokkerende manier.

Syntaxis

int MPIAPI MPI_Iallgather(
  _In_opt_  const void         *sendbuf,
  _In_             int         sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_            int          recvcount,
  _In_            MPI_Datatype recvtype,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

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 sendcount en sendtype . Elk element in de buffer komt overeen met een proces in de groep.

    Als de comm-parameter verwijst naar een intracommunicator, kunt u een in-place optie opgeven door MPI_IN_PLACE op te geven in alle processen. De parameters sendcount en sendtype worden genegeerd. Elk proces voert gegevens in het bijbehorende ontvangstbufferelement in. Het nth-proces verzendt gegevens naar het nth-element van de ontvangstbuffer.

  • sendcount [in]
    Het aantal elementen in de buffer dat is opgegeven in de parameter sendbuf . Als sendcount nul is, is het gegevensgedeelte van het bericht leeg.

  • sendtype [in]
    Het MPI-gegevenstype van de elementen in de verzendbuffer.

  • recvbuf [uit, optioneel]
    De aanwijzer naar een buffer die de gegevens bevat die van elk proces worden ontvangen. Het aantal en het gegevenstype van de elementen in de buffer worden opgegeven in de parameters recvcount en recvtype .

  • aantal [ in]
    Het aantal elementen in de ontvangstbuffer. Als het aantal nul is, is het gegevensgedeelte van het bericht leeg.

  • recvtype [in]
    Het MPI-gegevenstype van de elementen in de ontvangstbuffer.

  • 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_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR

Opmerkingen

Een niet-blokkerende oproep initieert een collectieve reductiebewerking 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 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.

Vereisten

Product

Microsoft MPI v7

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

Collectieve MPI-functies

MPI_Gather

MPI_Datatype

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome