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.
Egy folyamatcsoport egy részhalmazát nyeri ki a több utasításból álló több adatból (MIMD) való külön számítás céljára egy külön kommunikátorban.
Szintaxis
int MPIAPI MPI_Comm_create(
MPI_Comm comm,
MPI_Group group,
_Out_ MPI_Comm *newcomm
);
Paraméterek
Comm
A forráskommunikátor.hozzáadása
A forráskommunikátor folyamatainak kért részhalmazát meghatározó csoport.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 van tárolva.
Fortran
MPI_COMM_CREATE(COMM,GROUP,NEWCOMM,IERROR)
INTEGER COMM, GROUP, NEWCOMM, IERROR
Megjegyzések
A függvény által létrehozott kommunikátor a MPI_Comm_create függvénnyel vagy más kommunikátor-konstruktorokkal tovább felosztható párhuzamos alszámításokra. A MPI_Comm_split függvény egy általánosabb függvény , amely MPI_Comm objektumokat hoz létre.
Ha a comm paraméter egy intrakommunikátorra hivatkozik, ez a függvény egy új kommunikátort ad vissza a csoportparaméter által meghatározott kommunikációs csoporttal. A forráskommunikátorról nem propagálnak gyorsítótárazott információk az új kommunikátorra. Minden folyamatnak egy csoportparaméterrel kell meghívnia, amely a forráskommunikátorhoz társított csoport alcsoportja. Lehetséges érték MPI_GROUP_EMPTY. A folyamatok különböző értékeket adhatnak meg a csoportparaméterhez. Ha egy folyamat nem üres csoporttal hív meg egy függvényt, akkor a csoport összes folyamatának azonos értékekkel kell meghívnia a függvényt a csoportparaméterhez, azaz ugyanazon tagokhoz ugyanabban a sorrendben. Ellenkező esetben a függvény hibát ad vissza. Ez az eredmény azt jelenti, hogy a folyamatokban megadott csoportok halmazának különállónak kell lennie. Ha a hívási folyamat a csoportparaméterben megadott csoport tagja, akkor az újcomm paraméter egy olyan kommunikátort jelöl, amelynek társított csoportja a megadott csoport. Ha egy folyamat olyan csoportot határoz meg, amelyhez nem tartozik, például MPI_GROUP_EMPTY, akkor az újcomm paraméter MPI_COMM_NULL ad vissza.
Az interfész támogatja az MPI-1.1 eredeti mechanizmusát, amely minden kommunikációs folyamatban ugyanazt a csoportot igényelte. Az MPI-2.2-ben kiterjesztették, hogy lehetővé tegye különálló alcsoportok használatát, hogy lehetővé tegyék az implementációk számára a MPI_Comm_split szükségtelen kommunikációt, amely akkor merülne fel, ha a felhasználó már ismeri a különálló alcsoportok tagságát.
A MPI_Comm_create függvény kollektív, és a forráskommunikátor csoportjában lévő összes folyamatnak meg kell hívnia. Az a követelmény, hogy a teljes csoport részt vegyen a hívásban, a következő problémákból ered:
- Lehetővé teszi, hogy az implementáció a MPI_Comm_create funkciót a rendszeres kollektív kommunikációra helyezze.
- Ez további biztonságot nyújt, különösen abban az esetben, ha részben egymást átfedő csoportokat használnak új kommunikátorok létrehozásához.
- Lehetővé teszi az implementációk számára, hogy elkerüljék a környezet létrehozásával kapcsolatos kommunikáció egy részét.
Ha a kommunikátor paraméter egy interkommunikátorra hivatkozik, akkor a létrehozott kommunikátor egy interkommunikátor is, ahol a helyi csoport csak a csoportparaméterben megadott folyamatokból áll. Csak azokat a folyamatokat adja meg a bemeneti interkommunikátor helyi csoportjában, amelyek a csoportparaméter új kommunikátorának részei lesznek. A kommunikátor ugyanazon helyi csoportjában lévő összes folyamatnak ugyanazt az értéket kell megadnia a csoportparaméterhez , azaz ugyanazon tagokhoz ugyanabban a sorrendben. Ha valamelyik csoport nem határoz meg legalább egy folyamatot a kommunikációt kezdeményező helyi csoportjában, vagy ha a hívási folyamat nem szerepel a csoportban, a rendszer hibát ad vissza.
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 |