MPI_Iscatterv functie
Syntaxis
int MPIAPI MPI_Iscatterv(
_In_opt_ const void *sendbuf,
_In_opt_ const int sendcounts[],
_In_opt_ const int displs[],
_In_ 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, optioneel]
De aanwijzer naar een buffer die de gegevens bevat die moeten worden verzonden door het hoofdproces.Deze parameter wordt genegeerd voor alle niet-hoofdprocessen.
Als de comm-parameter verwijst naar een intracommunicator, kunt u een in-place optie opgeven door MPI_IN_PLACE op te geven in het hoofdproces. De parameters recvcount en recvtype worden genegeerd. De verspreide vector wordt nog steeds geacht n segmenten te bevatten, waarbij n de groepsgrootte is; het segment dat overeenkomt met het hoofdproces, wordt niet verplaatst.
sendcounts[] [in, optioneel]
Het aantal elementen dat naar elk proces moet worden verzonden. Als sendcounts[i] nul is, is het gegevensgedeelte van het bericht voor dat proces leeg.Deze parameter wordt genegeerd voor alle niet-hoofdprocessen.
displs[] [in, optioneel]
De locaties van de gegevens die naar elk communicatorproces moeten worden verzonden. Elke locatie in de matrix is relatief ten opzichte van het bijbehorende element van de sendbuf-matrix .In de parametermatrices sendbuf, sendcounts en displs verwijst het element nth van elke matrix naar de gegevens die moeten worden verzonden naar het nth communicator-proces.
Deze parameter is alleen van belang in het hoofdproces.
sendtype [in]
Het gegevenstype van elk element in de buffer.Deze parameter wordt genegeerd voor alle niet-hoofdprocessen.
recvbuf [uit, optioneel]
De aanwijzer naar een buffer die de gegevens bevat die voor 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 gegevenstype van de elementen in de ontvangstbuffer.root [in]
De positie in het verzendproces binnen de opgegeven communicator.comm [in]
De MPI_Comm communicatorgreep.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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Opmerkingen
Een niet-blokkerende aanroep initieert een collectieve reductiebewerking die moet worden voltooid in een afzonderlijke voltooiingsoproep. Zodra de bewerking is gestart, kan de bewerking onafhankelijk van berekeningen of andere communicatie op 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.
Vereisten
Product |
Microsoft MPI v7 |
Header |
Mpi.h; Mpif.h |
Bibliotheek |
Msmpi.lib |
DLL |
Msmpi.dll |