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.
A megadott kommunikátorhoz társított csoportot egy adott számú különálló alcsoportra particionálja.
Szintaxis
int MPIAPI MPI_Comm_split(
MPI_Comm comm,
int color,
int key,
_Out_ MPI_Comm *newcomm
);
Paraméterek
Comm
A felosztandó kommunikátor.Szín
Az új kommunikátor, amelyhez a hívási folyamatot hozzá kell rendelni. A szín értékének nem negatívnak kell lennie.Ha egy folyamat megadja a színértéket MPI_UNDEFINED, a függvény MPI_COMM_NULL a newcomm paraméterben visszaadja a hívási folyamatnak.
Kulcs
A hívási folyamat relatív rangja az új kommunikátor csoportjában. A kulcs - és színparaméterek használatával kapcsolatos részletekért lásd: Megjegyzések.newcomm [out]
Visszatérés esetén egy leírót tartalmaz egy új kommunikátorhoz.
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_COMM_SPLIT(COMM,COLOR,KEY,NEWCOMM,IERROR)
INTEGER COMM, COLOR, KEY, NEWCOMM, IERROR
Megjegyzések
Ez egy kollektív függvény, de minden folyamat különböző értékeket adhat meg a szín - és kulcsparaméterekhez .
Ez egy rendkívül hatékony mechanizmus arra, hogy egyetlen kommunikációs folyamatcsoportot tetszőleges számú alcsoportra osztsunk. Az alcsoportok számát az összes folyamathoz megadott színek száma határozza meg. Az eredményként kapott kommunikátorok nem fedik egymást. A kommunikátor ily módon történő felosztása hasznos a számítások hierarchiájának meghatározásához, például többrétű vagy lineáris algebra esetében.
Minden alcsoport tartalmazza az összes olyan folyamatot, amely ugyanazt az értéket adta meg a színparaméterhez. Az egyes alcsoportokon belül a folyamatok a kulcsparaméter értéke által meghatározott sorrendben vannak rangsorolva, a régi csoportban a rangjuknak megfelelően megtörve.
Az intrakommunikátor kommunikátor esetén a hívás MPI_COMM_CREATE(comm, group, new-comm) egyenértékű MPI_COMM_SPLIT(comm, color, key, newcomm)a hívással, ahol a csoporttagként működő folyamatok a csoport számát határozzák meg az összes különálló csoport egyedi számozása alapján a színparaméterhez és a kulcsparaméter csoportbeli rangjához. Minden olyan folyamat, amely nem tagja a csoportnak , MPI_UNDEFINED adja meg a színparamétert .
Egyetlen szín esetében a kulcsértéknek nem kell egyedinek lennie. A MPI_Comm_split függvény sorrendbe rendezi a folyamatokat a kulcsparaméter értéke szerint, és a kapcsolatokat a forráscsoport relatív rangsora alapján rendezi. Ha az összes kulcsparaméterhez ugyanaz az érték van megadva, akkor az adott színben lévő összes folyamat ugyanolyan relatív sorrendben van, mint a szülőcsoportban.
Az intrakommunikátorok esetében a MPI_Comm_split és MPI_Comm_create függvények hasonló képességet biztosítanak a kommunikációs csoportok különálló alcsoportokra való felosztására.
A MPI_Comm_split függvény akkor használatos, ha egyes folyamatok nem rendelkeznek a csoport többi tagjának teljes adataival, de minden folyamatnak az a színe van, amelyhez tartoznak. Ebben az esetben az MPI-implementáció kommunikációval felderíti a csoport többi tagját.
A MPI_Comm_create függvény akkor használatos, ha minden folyamat teljes körű információkkal rendelkezik a csoport tagjairól. Ebben az esetben az MPI-implementáció elkerülheti a csoporttagság felderítéséhez szükséges további kommunikációt.
A MPI_Comm_split által létrehozott kommunikátorok nem fedhetők át. A korlátozás leküzdéséhez többször is meghívhatja a MPI_Comm_split függvényt. Így több egymást átfedő kommunikációs struktúrát is létrehozhat. Az ilyen felosztási műveletekben a szín - és kulcsparaméterek kreatív használatát javasoljuk.
Az interkommunikátor MPI_Comm_split függvényének eredménye, hogy a bal oldalon lévő, a jobb oldali folyamatokkal megegyező színű folyamatok kombinálva létrehoznak egy új interkommunikátort. A kulcsparaméter határozza meg a folyamatok relatív rangsorát a kommunikáció mindkét oldalán. A MPI_COMM_NULL fogóponttal rendelkező új kommunikátort a rendszer visszaadja azoknak a folyamatoknak, amelyek színként MPI_UNDEFINED , vagy olyan színt ad meg, amely csak az interkommunikátor egyik oldalán van megadva.
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 terjeszthető csomag vagy HPC Pack 2008 Client Utilities |
Fejléc |
Mpi.h; Mpif.h |
Kódtár |
Msmpi.lib |
DLL |
Msmpi.dll |