MPI_Allreduce funkce
Kombinuje hodnoty ze všech procesů a distribuuje výsledek zpět do všech procesů.
Syntaxe
int MPIAPI MPI_Allreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm
);
Parametry
sendbuf [in, volitelné]
Ukazatel na data, která se mají odeslat všem procesům ve skupině. Počet a datový typ prvků ve vyrovnávací paměti jsou zadané v parametrech count a datatype.Pokud parametr comm odkazuje na intrakomunikator, můžete zadat možnost na místě zadáním MPI_IN_PLACE ve všech procesech. V tomto případě jsou vstupní data převzata při každém procesu z vyrovnávací paměti pro příjem, kde budou nahrazena výstupními daty.
recvbuf [out, volitelné]
Ukazatel na vyrovnávací paměť pro příjem výsledku operace redukce. Tento parametr je významný pouze v kořenovém procesu.count [in]
Počet prvků, které se mají z tohoto procesu odeslat.datový typ [v]
MPI_Datatype každého prvku ve vyrovnávací paměti. Tento parametr musí být kompatibilní s operací, jak je uvedeno v parametru op .op [in]
Popisovač MPI_Op označující globální operaci redukce, která se má provést. Popisovač může znamenat integrovanou operaci nebo operaci definovanou aplikací. Seznam předdefinovaných operací najdete v tématu MPI_Op.comm [in]
Popisovač MPI_Comm communicatoru.
Vrácená hodnota
Vrátí MPI_SUCCESS při úspěchu. V opačném případě je návratovou hodnotou kód chyby.
V nástroji Fortran je vrácená hodnota uložena v parametru IERROR .
Fortran
MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, IERROR
Poznámky
Pokud je komunikace interkomunikátorem, je výsledek redukce dat poskytovaných procesy ve skupině A uložen v každém procesu ve skupině B a naopak. Obě skupiny by měly poskytovat argumenty count a datatype , které určují stejný typ podpisu.
Pro neblokující operace redukce se podporují všechna volání dokončení (např. MPI_Wait).
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; Mpif.h |
Knihovna |
Msmpi.lib |
DLL |
Msmpi.dll |