Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozsadí data od jednoho člena do všech členů skupiny. Funkce MPI_Scatter provádí inverzní funkci k operaci, kterou provádí funkce MPI_Gather .
Syntaxe
int MPIAPI MPI_Scatter(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
MPI_Datatype recvtype,
int root,
MPI_Comm comm
);
Parametry
sendbuf [in]
Popisovač vyrovnávací paměti obsahující data, která mají být odeslána kořenovým procesem.Parametr sendbuf je ignorován pro všechny procesy, které nejsou kořenové.
Pokud parametr comm odkazuje na intracommunicator, můžete zadat místní možnost zadáním MPI_IN_PLACE v kořenovém procesu. Parametry recvcount a recvtype se ignorují. Bodový vektor je stále považován za obsahující n segmentů, kde n je velikost skupiny; segment, který odpovídá kořenovému procesu, se nepřesune.
počet odeslání
Počet prvků ve vyrovnávací paměti pro odesílání. Pokud je hodnota sendcount nulová, je datová část zprávy prázdná.Parametr sendcount je ignorován pro všechny procesy, které nejsou kořenem.
typ odeslání
Datový typ každého prvku ve vyrovnávací paměti.Parametr sendcount je ignorován pro všechny procesy, které nejsou kořenem.
recvbuf [out]
Popisovač vyrovnávací paměti, která obsahuje data přijatá v každém procesu. Počet a datový typ prvků ve vyrovnávací paměti jsou uvedeny v parametrech recvcount a recvtype .recvcount
Počet prvků ve vyrovnávací paměti pro příjem. Pokud je počet nula, datová část zprávy je prázdná.recvtype
Datový typ prvků v vyrovnávací paměti pro příjem.Kořenové
Pořadí procesu odesílání v rámci zadaného komunikátoru.Komunikace
Popisovač MPI_Comm komunikátoru.
Vrácená hodnota
Vrátí MPI_SUCCESS při úspěchu. V opačném případě je návratovou hodnotou kód chyby.
Ve Fortranu je vrácená hodnota uložena v parametru IERROR .
Fortran
MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR
Poznámky
Účinek funkce MPI_Scatter je, jako kdyby kořenový proces odeslal zprávu pomocí funkce MPI_Send . Tato zpráva je rozdělena do n stejných segmentů, jeden pro každého člena skupiny. I.segment se odešle do i. procesu ve skupině.
Pokud je comm intracommunicator, výsledek je, jako by kořen spustil n operace MPI_Send(sendbuf + i*sendcount*extent(sendtype), sendcount, sendtype, I, …)odeslání ; a každý proces spustil příjem, MPI_Recv(recvbuf, recvcount, recvtype, i,…).
Podpis typu určený parametry sendcount a sendtype pro kořenový proces se musí rovnat podpisu typu určenému recvcount a parametrům recvtype pro všechny procesy. Množství odeslaných dat se proto musí rovnat množství dat přijatých mezi libovolnými dvojicemi procesů. Mapování různých typů mezi odesílatelem a příjemcem je stále povolené.
Všechny parametry funkce jsou významné pro kořenový proces, pouze parametry recvbuf, recvcount, recvtype, root a comm jsou významné pro ostatní procesy. Parametry root a comm musí být ve všech procesech identické.
Specifikace počtů a typů by neměla způsobit, aby se jakékoli umístění v kořenovém adresáři četlo více než jednou.
Pokud parametr comm odkazuje na interkomunikator, pak volání zahrnuje všechny procesy v interkomunikátoru, ale s jednou skupinou, skupinou A, která definuje kořenový proces. Všechny procesy v druhé skupině, skupině B, nastaví stejnou hodnotu v kořenovém parametru, tj. pořadí kořenového procesu ve skupině A. Kořenový proces nastaví hodnotu MPI_ROOT v parametru root . Všechny ostatní procesy ve skupině A nastavte hodnotu MPI_PROC_NULL v kořenovém parametru. Data se vysílaly z kořenového procesu do všech procesů ve skupině B. Parametry vyrovnávací paměti procesů ve skupině B musí být konzistentní s parametrem vyrovnávací paměti kořenového procesu.
Požadavky
Produkt |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package nebo HPC Pack 2008 Client Utilities |
Hlavička |
Mpi.h; Soubor Mpif.h |
Knihovna |
Msmpi.lib |
DLL |
Msmpi.dll |