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.
Változó mennyiségű adatot gyűjt egy csoport minden tagjától, és elküldi az adatokat a csoport összes tagjának. A MPI_Allgatherv függvény olyan, mint a MPI_Gatherv, azzal a kivételrel, hogy az összes folyamat a gyökér helyett az eredményt kapja. A jth folyamatból küldött adatblokkot minden folyamat megkapja, és a puffer recvbufj. blokkjába helyezi. Ezeknek a blokkoknak nem kell azonos méretűnek lenniük.
Szintaxis
int MPIAPI MPI_Allgatherv(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
_In_ int *recvcounts,
_In_ int *displs,
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, megadhat egy helyi beállítást úgy, hogy minden folyamat MPI_IN_PLACE ad meg. 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
A folyamat által a sendbuf paraméterben megadott pufferben küldött adatelemek száma. Ha a sendcount egyik eleme nulla, az üzenetnek az adott folyamatból származó adatrésze üres.sendtype
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.recvcounts [in]
A fogadó pufferben lévő egyes kommunikátori folyamatok adatelemeinek száma.displs [in]
Az egyes kommunikációs folyamatok adatainak helye a recvbuf paraméterhez viszonyítva.A recvbuf, a recvcounts és a displs paramétertömbökben az egyes tömbök n. eleme az n. kommunikátori folyamattól kapott adatokra hivatkozik.
recvtype
A puffer egyes 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_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE,COMM, IERROR)
<type> SENDBUF(*), R.ECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR
Megjegyzések
A MPI_Allgatherv használati szabályai megfelelnek a MPI_Gatherv szabályainak.
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_Allgatherv(...)eredménye olyan, mintha az összes folyamat a parancsra MPI_GatherV(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs,recvtype,root,comm)root = 0 , ..., n-1irányuló hívásokat hajt végre.
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.
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 |