Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sprider data från en medlem över alla medlemmar i en grupp på ett icke-blockerande sätt. Den här funktionen utför inversen av den åtgärd som utförs av funktionen MPI_Igather.
Syntax
int MPIAPI MPI_Iscatter(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_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
);
Parametrar
sendbuf [in, valfritt]
Pekaren till en buffert som innehåller de data som ska skickas till rotprocessen.Den här parametern ignoreras för alla icke-rotprocesser.
Om parametern comm refererar till en intracommunicator kan du ange ett alternativ på plats genom att ange MPI_IN_PLACE i rotprocessen. Parametrarna recvcount och recvtype ignoreras. Den spridda vektorn anses fortfarande innehålla n segment, där n är gruppstorleken; segmentet som motsvarar rotprocessen flyttas inte.
sendcount [in]
Antalet element i sändningsbufferten. Om sendcount är noll är datadelen av meddelandet tom.Den här parametern ignoreras för alla icke-rotprocesser.
sendtype [in]
Datatypen för varje element i bufferten.Den här parametern ignoreras för alla icke-rotprocesser.
recvbuf [ut, valfritt]
Handtaget till en buffert som innehåller de data som tas emot i varje process. Antalet och datatypen för elementen i bufferten anges i parametrarna recvcount och recvtype .recvcount [in]
Antalet element i mottagningsbufferten. Om antalet är noll är datadelen av meddelandet tom.recvtype [in]
MPI-datatypen för elementen i mottagningsbufferten.root [in]
Rangordningen för den mottagande processen inom den angivna kommunikatören.comm [in]
Den MPI_Comm kommunikationshandtaget.begäran [ut]
Den MPI_Request hanterar som representerar kommunikationsåtgärden.
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern IERROR .
Fortran
MPI_ISCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Kommentarer
Ett icke-blockerande anrop initierar en kollektiv minskningsåtgärd som måste slutföras i ett separat slutförandeanrop. När åtgärden har initierats kan den fortsätta oberoende av beräkningen eller annan kommunikation i deltagande processer. På så sätt kan icke-blockerande minskningsåtgärder minimera möjliga synkroniseringseffekter av minskningsåtgärder genom att köra dem i "bakgrunden".
Alla slutförandeanrop (t.ex. MPI_Wait) stöds för icke-blockerande minskningsåtgärder.
Krav
Produkt |
Microsoft MPI v7 |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |