Megosztás:


MPI_Comm_create függvény

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

Lásd még

MPI Communicator-függvények

MPI_Comm_split