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.
Nem blokkoló módon gyűjt változó adatokat egy csoport összes tagjától egy tagig.
Szintaxis
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
);
Paraméterek
sendbuf [in, nem kötelező]
A leíró egy pufferbe, amely tartalmazza a gyökérfolyamatba küldendő adatokat.Ha a komm paraméter egy intrakommunikátorra hivatkozik, a MPI_IN_PLACE 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ási pufferelemben. Az n. folyamat adatokat küld a fogadópuffer n. elemének. A gyökérfolyamat által küldött adatok feltételezik, hogy a fogadó pufferben a megfelelő helyen találhatóak.
sendcount [in]
A küldési puffer elemeinek száma. Ha a sendcount értéke nulla, az üzenet adatrésze üres.sendtype [in]
A puffer egyes elemeinek adattípusa.recvbuf [ki, nem kötelező]
A leíró a gyökérfolyamat pufferéhez, amely tartalmazza az egyes folyamatoktól kapott adatokat, beleértve a gyökérfolyamat által küldött adatokat is. Ez a paraméter csak a gyökérfolyamatban jelentős. A recvbuf paraméter minden nem gyökérfolyamat esetében figyelmen kívül lesz hagyva.recvcounts[] [in, optional]
Az egyes folyamatoktól kapott elemek száma. A tömb minden eleme a küldési folyamat rangjának felel meg. Ha a szám nulla, az üzenet adatrésze üres. Ez a paraméter csak a gyökérfolyamatban jelentős.displs[] [in, nem kötelező]
Az egyes kommunikációs folyamatok adatainak helye a recvbuf paraméterhez viszonyítva. A j folyamattól kapott adatok a gyökérfolyamat-eltolás fogadó pufferébe kerülnek, és a sendbuf mutató[j] elemeit bontják.A recvbuf, recvcounts és displs paramétertömbökben az egyes tömbök nth eleme az nth communicator folyamattól kapott adatokra hivatkozik.
Ez a paraméter csak a gyökérfolyamatban jelentős.
recvtype [in]
A puffer egyes elemeinek adattípusa. Ez a paraméter csak a gyökérfolyamatban jelentős.root [in]
A fogadó folyamat rangja a megadott kommunikátorban.comm [in]
A MPI_Comm communicator leírója.request [out]
A kommunikációs műveletet jelképező MPI_Request leíró.
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 lesz tárolva.
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
Megjegyzések
A nem blokkoló hívás együttes csökkentési műveletet kezdeményez, amelyet külön befejezési hívásban kell végrehajtani. A kezdeményezést követően a művelet a részt vevő folyamatokban végzett számításoktól vagy más kommunikációtól függetlenül is továbbhaladhat. Ily módon a nem blokkoló csökkentési műveletek a "háttérben" futtatva mérsékelhetik a csökkentési műveletek lehetséges szinkronizálási hatásait.
Minden befejezési hívás (például MPI_Wait) támogatott a nem blokkoló csökkentési műveletekhez.
Követelmények
Termék |
Microsoft MPI v7 |
Fejléc |
Mpi.h; Mpif.h |
Kódtár |
Msmpi.lib |
DLL |
Msmpi.dll |