Kezdje el az Intel Trace Analyzer és Collector használatát

Első lépések az Intel-Trace-Analyzer-és-Collector-termékkel

Kezdje el az Intel® Trace Analyzer és Collector használatát

Használja ezt a Kezdő lépések dokumentumot és egy előre összegyűjtött nyomkövetést file az Intel® Trace Analyzer és Collector segítségével végzett alapvető MPI-teljesítményelemzésen.
Az Intel Trace Analyzer and Collector segít feltárni az üzenettovábbítási interfész (MPI) használatának hatékonyságát, és azonosítani a kommunikációs hotspotokat, a szinkronizálási szűk keresztmetszeteket és a terheléselosztást. A termékkel kapcsolatos további információkért tekintse meg az Intel Trace Analyzer and Collector termékoldalát.

Töltse le az Intel Trace Analyzer and Collector programot

  • az Intel® oneAPI HPC Toolkit részeként
  • önálló eszközként

Előfeltételek

  • Az Intel Trace Analyzer and Collector futtatása előtt győződjön meg arról, hogy telepítette a legújabb Intel® MPI Library-t és az Intel® oneAPI DPC++/C++ fordítót vagy az Intel® Fortran fordítót.
  • Ez beállítja a szükséges környezeti változókat a fordítók, az Intel MPI Library és az Intel Trace Analyzer and Collector számára, és máris nyomon követheti alkalmazásait.
  • További információkért lásd: Intel® oneAPI HPC Toolkit rendszerkövetelmények.

A munkafolyamat megértése

  1. Kövesse nyomon az alkalmazást
  2. Elemezze a legaktívabb MPI-függvényeket
  3. A problémás interakciók azonosítása
  4. Javítsa alkalmazásának teljesítményét a problémát okozó funkció lecserélésével

Kövesse nyomon MPI-alkalmazását

Nyom létrehozása file eseménynaplók gyűjtéséhez a következő alkalmazások viselkedésének elemzéséhez.

  1. Állítsa be az Intel® Trace Analyzer and Collector elindításához szükséges környezetet a setvars szkript futtatásával a oneAPI telepítési igazgatóból
    JEGYZET
    Alapértelmezés szerint az Intel Trace Analyzer and Collector az /opt/intel/oneapi/itac könyvtárba van telepítve Linux* operációs rendszerhez és a Programhoz. Files (x86)\Intel\oneAPI\itac\legújabb Windows* operációs rendszerhez.
    Linuxon:
    $ forrás /opt/intel/oneapi/setvars.sh
    Windows rendszeren:
    „C:\Program Files (x86)\Intel\oneAPI\setvars.bat”
  2. Futtassa az MPI-alkalmazást, és generáljon nyomkövetést a -trace kapcsolóval.
    Linuxon:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    Windows rendszeren:
    Fordítsa le az alkalmazást, és gyűjtse össze a nyomot.
    Intel oneAPI DPC++/C++ fordító esetén futtassa:
    > mpiicc -trace poisson_sendrecv.single.c
    Intel Fortran Compiler esetén futtassa:
    > mpiifort -trace poisson_sendrecv.single.f
    Ez az example nyomkövetést (stf*) generál az as számáraample poisson_sendrcv.single MPI alkalmazás
  3. Nyissa meg a létrehozott .stf fájlt file Intel Trace Analyzerrel, Intel Trace Analyzerrel és Collectorral.
    Linuxon:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    Windows rendszeren:
    traceanalyzer poisson_sendrecv.single.stf

JEGYZET
Tesztelési célokra letölthet egy előre összegyűjtött nyomkövetést file poisson_sendrecv.single.stf a jelen dokumentumban használt poisson számára, és nyissa meg az Intel Trace Analyzer and Collector segítségével.
Az .stf file megnyílik az Összefoglaló oldalon view, amely általános információkat tartalmaz az alkalmazás teljesítményéről:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-1. ábraKezdő lépések az Intel-Trace-analyzerrel és a Collectorral-2. ábraJEGYZET Az Intel Trace Analyzer és Collector funkcióiról a További információ című témakörben olvashat bővebben.

Elemezze a legaktívabb MPI-funkciókat

Elemezze az MPI-alkalmazások viselkedését, keresse meg a szűk keresztmetszeteket és azonosítsa a sorozatosítást, hogy megtalálja az alkalmazás teljesítményének javításának módjait.

  1. Az Összefoglaló oldalon nyissa meg az Esemény idővonalát view Kattintson a Folytatás > Diagramok > Esemény idővonala elemre a legfontosabb MPI-funkciók részletes elemzéséhez.
    A diagram az egyes folyamattevékenységeket mutatja az idő függvényében.
    Az alkalmazási munka iteratív, ahol minden iteráció egy számítási részből és MPI-kommunikációból áll.
  2. Határozzon meg egyetlen iterációt, amelyre fókuszálhat, és nagyítson rá úgy, hogy az egeret a kívánt időintervallum fölé húzza:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-3. ábraA nyom view a kiválasztott nyomvonalon belüli szakaszt jeleníti meg. Az Esemény idővonal diagramja azokat az eseményeket mutatja, amelyek a kiválasztott iteráció során aktívak voltak.
    • A vízszintes sávok jelzik a folyamatokat az ezekben a folyamatokban elnevezett függvényekkel.
    • Fekete vonalak jelzik a folyamatok között küldött üzeneteket. Ezek a vonalak kötik össze a küldési és fogadási folyamatokat.
    • A kék vonalak kollektív műveleteket jelölnek, mint például a broadcast vagy a redukciós műveleteket.
  3. Váltson a Flat Pro-rafile fül (A), hogy közelebbről megtekinthesse az Ön által ( az Esemény idővonalán kiválasztott) időpontban végrehajtott funkciókat.Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-4. ábra
  4. Az MPI-függvények csoportosítása az MPI-folyamatok tevékenységének elemzéséhez az alkalmazásban.
    Ehhez kattintson a jobb gombbal a Minden folyamat > Csoport MPI ( B) elemre a Flat Pro alkalmazásbanfile és válassza az UngroupMPI lehetőséget. Ez a művelet felfedi az egyes MPI-hívásokat.
  5. Elemezze a közvetlen szomszédaikkal kommunikáló folyamatokat az MPI_Sendrecv használatával az iteráció elején. Plample:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-5. ábra
    • a. A szample, az MPI_Sendrecv adatcserének van egy szűk keresztmetszete: a folyamat addig nem cserél adatot a következő szomszédjával, amíg az előzővel való csere be nem fejeződik. Az események idővonalai view ezt a szűk keresztmetszetet lépcsőként jeleníti meg.
    • b. Az MPI_Allreduce az iteráció végén újraszinkronizálja az összes folyamatot; ezért van ennek a blokknak a fordított lépcsőházi megjelenése.
  6. Azonosítsa a sorozatosítást a Function Pro segítségévelfile és a Message Profile views.
    • a. Nyissa meg egyszerre a diagramokat:
      A Function Pro-banfile diagramot, nyissa meg a Load Balance lapot.
    • A Message Pro megnyitásához lépjen a Diagramok menübefile.
    • b. A Load Balance lapon bontsa ki az MPI_Sendrecv és az MPI_Allreduce elemet. A Load Balancing azt jelzi, hogy az MPI_Sendrecv-ben eltöltött idő a folyamatszámmal növekszik, míg az MPI_Allreduce ideje csökken.
    • c. Vizsgálja meg a Message Pro-tfile Diagram le a jobb alsó sarokhoz.
      A blokkok színkódolása azt jelzi, hogy a magasabb rangról alacsonyabb rangra jutó üzeneteknek arányosan több időre van szükségük, míg az alacsonyabb rangról magasabb rangra jutó üzenetek gyenge páros-páratlan mintázatot mutatnak:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-6. ábra

Az összehasonlító elemzés eredményei azt mutatják, hogy az alkalmazásban nincsenek bonyolult cseremintázatok, a csere csak szomszédos folyamatokkal történik. Az információ elengedhetetlen lesz az alkalmazás teljesítményének javítása a kommunikáció megváltoztatásával lépéséhez, amely az alkalmazás kommunikációs modelljét optimalizálja.

Azonosítsa a kiegyensúlyozatlan kommunikációt

Nézze meg alkalmazását ideális körülmények között, és hasonlítsa össze az eredeti nyomot file az idealizálttal a problematikus kölcsönhatások elkülönítésére.

  1. Hozzon létre egy idealizált file:
    • a. Válassza a Speciális > Idealizálás lehetőséget, vagy kattintson a gombraKezdő lépések az Intel-Trace-analyzerrel és a Collectorral-7. ábra (Idealizálás) eszköztár gombja.
    • b. Ellenőrizze az idealizálási paramétereket az Idealizálás párbeszédpanelen (ideal trace file név és időtartomány a konverzióhoz).
    • c. Kattintson a Start gombra a nyomkövetés idealizálásához.
  2. Hasonlítsa össze az eredeti nyomot az idealizált nyomvonallal:
    • a. Válassza a Speciális > Kiegyensúlyozatlansági diagram lehetőséget, vagy kattintson a gombra Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-8. ábra(Egyensúlyi diagram) eszköztár gombja.
    • b. Az egyensúlyi diagram párbeszédpanelen kattintson a Másik megnyitása elemre File gombot, keresse meg az ideális nyomkövetést, és válassza ki.
    • c. Az egyensúlyi diagram ablakban kattintson a Teljes mód gombra, és válassza a Lebontási módot.

Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-9. ábra

Látható, hogy az MPI_Sendrecv a legidőigényesebb funkció. Az egyensúlyhiány súlya a következőben jelenik meg:
világos szín, és körülbelül 10%-ot tartalmaz az MPI_Sendrecv függvény számára. Ez az az idő, amit a folyamatok egymásra várva töltenek.

Javítsa alkalmazása teljesítményét a kommunikáció megváltoztatásával

  1. Javítsa az MPI-alkalmazás teljesítményét azáltal, hogy a blokkolást nem blokkoló kommunikációra változtatja.
    A kódban cserélje ki a soros MPI_Sendrcv-t nem blokkoló kommunikációra: MPI_Isend és MPI_Irecv. Plample: Eredeti kódrészlet:
    // határcsere
    void Exchange(para* p, grid* gr){
    int i,j;
    MPI_Állapot_100, állapot_200, állapot_300, állapot_400;
    // elküldi az első sort
    MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->down, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD,
    &állapot_100);
    // küldd fel az utolsó sort
    MPI_Send(gr->x_new[gr->lrow], gr->lcol+2, MPI_DOUBLE, gr->up, 200, MPI_COMM_WORLD);
    MPI_Recv(gr->x_new[0], gr->lcol+2, MPI_DOUBLE, gr->down, 200, MPI_COMM_WORLD, &status_200);
    Használja az Intel Trace Analyzer összehasonlítását view összehasonlítani a soros alkalmazást az átdolgozottal
    // bal oldali oszlop másolása tmp tömbökbe
    if(gr->left != MPI_PROC_NULL){
    gr->x_új[i][gr->lcol+1] = jobb_oszlop[i]; right_col[i] = gr->x_new[i][gr->lcol];
    // jobbra küldeni
    MPI_Send(jobb_col, gr->lrow+2, MPI_DOUBLE, gr->jobb, 400, MPI_COMM_WORLD); }
    if(gr->left != MPI_PROC_NULL)
    {
    MPI_Recv(bal_col, gr->lrow+2, MPI_DOUBLE, gr->bal, 400, MPI_COMM_WORLD,&állapot_400); for(i=0; i< gr->lrow+2; i++
    {
    gr->x_új[i][0] = left_col[i];
    }
    }
    Frissített kódrészlet
    MPI_Request req[7];
    // elküldi az első sort
    MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->down, 100, MPI_COMM_WORLD, &req[0]);
    MPI_Irecv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD, &req[1]);
    …..
    MPI_Waital(7, req, MPI_STATUSES_IGNORE);
    A kijavítás után a felülvizsgált alkalmazás egyetlen iterációja a következőképpen fog kinézni, plample:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-10. ábra
  2. Használja az Intel Trace Analyzer összehasonlítását view összehasonlítani a soros alkalmazást a felülvizsgáltal. Hasonlítson össze két nyomot az Összehasonlítás segítségével View, megy View > Hasonlítsa össze. Az összehasonlítás View hasonlít ehhez:Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-11. ábraAz Összehasonlításban View, láthatja, hogy a nem blokkoló kommunikáció segít eltávolítani a szerializációt és csökkenti a folyamatok kommunikációs idejét.
    JEGYZET Az alkalmazás csomóponti szintű teljesítményével kapcsolatos további információkért tekintse meg a megfelelő eszközök dokumentációját: Intel® VTune™ Profiler MPI-kódelemzés és Intel® MPI-alkalmazások elemzése az Intel® Advisor segítségével.

További információ

Az Intel Trace Analyzer és Collector szoftverrel kapcsolatos további információkért tekintse meg a következő forrásokat.Kezdő lépések az Intel-Trace-analyzerrel és a Collectorral-12. ábraKezdő lépések az Intel-Trace-analyzerrel és a Collectorral-13. ábra

Megjegyzések és felelősség kizárása

  • Az Intel technológiákhoz engedélyezni kell a hardver, a szoftver vagy a szolgáltatás aktiválását.
  • Egyetlen termék vagy alkatrész sem lehet teljesen biztonságos.
  • A költségek és az eredmények változhatnak.
  • © Intel Corporation. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Más nevek és márkák mások tulajdonát képezhetik.
  • Ez a dokumentum nem ad engedélyt (kifejezetten vagy hallgatólagosan, megtagadással vagy más módon) semmilyen szellemi tulajdonjogra.
  • A leírt termékek tervezési hibákat vagy hibáknak nevezett hibákat tartalmazhatnak, amelyek miatt a termék eltérhet a közzétett specifikációktól. Az aktuális jellemző hibák kérésre rendelkezésre állnak.
  • Az Intel elhárít minden kifejezett és vélelmezett garanciát, beleértve korlátozás nélkül az eladhatóságra, az adott célra való alkalmasságra és a jogsértésekre vonatkozó hallgatólagos garanciákat, valamint a teljesítés menetéből, a kereskedés menetéből vagy a kereskedelmi felhasználásból eredő minden garanciát.

Dokumentumok / Források

intel Kezdő lépések az Intel Trace Analyzer és Collector használatával [pdf] Felhasználói útmutató
Indítsa el az Intel Trace Analyzer és Collector használatát, ismerkedjen meg az Intellel, Trace Analyzer és Collector, Collector

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *