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.
Shromažďuje data proměnných ze všech členů skupiny do jednoho člena neblokujícím způsobem.
Syntaxe
int MPIAPI MPI_Igatherv(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_opt_ const int recvcounts[],
_In_opt_ const int displs[],
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametry
sendbuf [in, optional]
Popisovač vyrovnávací paměti obsahující data, která mají být odeslána do kořenového procesu.Pokud parametr comm odkazuje na intracommunicator, můžete zadat místní možnost zadáním MPI_IN_PLACE ve všech procesech. Parametry sendcount a sendtype se ignorují. Každý proces zadává data do odpovídajícího prvku vyrovnávací paměti pro příjem. N. proces odešle data do n. prvku vyrovnávací paměti pro příjem. Předpokládá se, že data odesílaná kořenovým procesem jsou ve vyrovnávací paměti pro příjem na správném místě.
sendcount [in]
Počet prvků ve vyrovnávací paměti pro odesílání. Pokud je hodnota sendcount nulová, je datová část zprávy prázdná.sendtype [in]
Datový typ každého prvku ve vyrovnávací paměti.recvbuf [out, optional]
Popisovač vyrovnávací paměti kořenového procesu, který obsahuje data přijatá z každého procesu, včetně dat odesílaných kořenovým procesem. Tento parametr je významný pouze v kořenovém procesu. Parametr recvbuf je ignorován pro všechny procesy, které nejsou root.recvcounts[] [in, optional]
Počet prvků, které jsou přijaty z každého procesu. Každý prvek v poli odpovídá pořadí procesu odesílání. Pokud je počet nula, datová část zprávy je prázdná. Tento parametr je významný pouze v kořenovém procesu.displs[] [in, optional]
Umístění dat z každého procesu komunikátoru vzhledem k parametru recvbuf . Data přijatá z procesu j jsou umístěna do vyrovnávací paměti pro příjem elementů displs[j] odsazení kořenového procesu z ukazatele sendbuf .V recvbuf, recvcounts, a displs parametr pole, ntý prvek každého pole odkazuje na data, která jsou přijata z ntého procesu komunikátoru.
Tento parametr je významný pouze v kořenovém procesu.
recvtype [in]
Datový typ každého prvku ve vyrovnávací paměti. Tento parametr je významný pouze v kořenovém procesu.root [v]
Pořadí procesu přijímání v rámci zadaného komunikátoru.comm [in]
Popisovač MPI_Comm komunikátoru.žádost [out]
Popisovač MPI_Request představující komunikační operaci.
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_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR
Poznámky
Neblokující volání inicializuje operaci kolektivní redukce, která musí být dokončena v samostatném volání dokončení. Po zahájení může operace probíhat nezávisle na výpočtu nebo jiné komunikaci v zúčastněných procesech. Tímto způsobem mohou neblokující operace redukce zmírnit případné synchronizační účinky operací redukce jejich spouštěním na "pozadí".
Všechna volání dokončení (např. MPI_Wait) jsou podporována pro neblokující operace redukce.
Požadavky
Produkt |
Microsoft MPI v7 |
Hlavička |
Mpi.h; Soubor Mpif.h |
Knihovna |
Msmpi.lib |
DLL |
Msmpi.dll |