Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Adatokat gyűjt egy csoport összes tagjától, és elküldi az adatokat a csoport összes tagjának. A MPI_Allgather függvény hasonló a MPI_Gather függvényhez, azzal a kivételrel, hogy az adatokat nem csak a gyökérnek, hanem az összes folyamatnak elküldi. A MPI_Allgather használati szabályai megfelelnek a MPI_Gather szabályainak.
Szintaxis
int MPIAPI MPI_Allgather(
_In_ void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
MPI_Datatype recvtype,
MPI_Comm comm
);
Paraméterek
sendbuf [in]
A csoport összes folyamatának elküldendő adatokra mutató mutató. A puffer elemeinek száma és adattípusa a sendcount és a sendtype paraméterekben van megadva. A puffer minden eleme megfelel a csoport egy folyamatának.Ha a comm paraméter egy intrakommunikátorra hivatkozik, a MPI_IN_PLACE megadásával minden folyamathoz megadhat egy helyi beállítást. A sendcount és a sendtype paraméterek figyelmen kívül lesznek hagyva. Minden folyamat adatokat ad meg a megfelelő fogadópufferelemben. Az n. folyamat adatokat küld a fogadópuffer n.a. elemének.
sendcount [in]
A sendbuf paraméterben megadott elemek száma a pufferben. Ha a sendcount értéke nulla, az üzenet adatrésze üres.sendtype [in]
A küldési puffer elemeinek MPI-adattípusa.recvbuf [kifelé]
Az egérmutató egy olyan pufferre, amely az egyes folyamatoktól kapott adatokat tartalmazza. A puffer elemeinek számát és adattípusát a recvcount és a recvtype paraméterek határozzák meg.recvcount
A fogadó puffer elemeinek száma. Ha a szám nulla, az üzenet adatrésze üres.recvtype
A fogadási puffer elemeinek MPI-adattípusa.Comm
A MPI_Comm kommunikátor fogantyú.
Visszatérési érték
Sikeres MPI_SUCCESS ad vissza. Ellenkező esetben a visszatérési érték hibakód.
A Fortranban a visszatérési érték az IERROR paraméterben van tárolva.
Fortran
MPI_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR
Megjegyzések
A folyamat sendtype paraméteréhez társított típusa aláírásnak meg kell egyeznie a bármely más folyamat recvtype paraméteréhez társított típusaa aláírással.
Ha a comm paraméter egy intrakommunikátorra hivatkozik, a hívás MPI_ALLGATHER(...) eredménye olyan, mintha az összes folyamat n hívást hajtott volna végre a MPI_Gather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,root,comm) számára root = 0 , ..., n-1.
Ha a comm paraméter egy interkommunikátorra hivatkozik, akkor egy csoport minden egyes folyamata( például az A csoport) hozzájárul a sendcount paraméterben megadott adatelemek számához. Ezeket az adatokat összefűzi a rendszer, és az eredményt a másik csoport (B) minden egyes folyamata tárolja. Ezzel szemben a B csoportban lévő folyamatok adatainak összefűzését az A csoport minden egyes folyamata tárolja. Az A csoport küldési pufferparamétereinek konzisztensnek kell lenniük a B csoport fogadó pufferparamétereivel, és fordítva.
Az A csoportban lévő folyamatok által küldött elemek számának nem kell megegyeznie a B csoportban lévő folyamatok által küldött elemek számával. Az adatokat például csak egy irányba helyezheti át, ha fordított irányban adja meg a sendcount == 0 értéket a kommunikációhoz.
Követelmények
Termék |
HPC Pack 2012 MS-MPI terjeszthető csomag, HPC Pack 2008 R2 MS-MPI terjeszthető csomag, HPC Pack 2008 MS-MPI újraterjeszthető csomag vagy HPC Pack 2008 ügyfél-segédprogramok |
Fejléc |
Mpi.h; Mpif.h |
Kódtár |
Msmpi.lib |
DLL |
Msmpi.dll |