Hasi Intel Trace Analyzer eta Collector-ekin

Hasi-Intel-Trace-Analyzer-eta-Collector-produktuarekin

Hasi Intel® Trace Analyzer eta Collector-ekin

Erabili Hasteko dokumentu hau eta aurrez bildutako arrasto bat file Intel® Trace Analyzer eta Collector-ekin oinarrizko MPI errendimenduaren analisia egiteko.
Intel Trace Analyzer and Collector-ek mezuak pasatzeko interfazearen (MPI) erabilera-eraginkortasuna aztertzen laguntzen du eta komunikazio-guneak, sinkronizazio-botoiak eta karga orekatzea identifikatzen laguntzen du. Produktuari buruzko informazio gehiago lortzeko, ikus Intel Trace Analyzer and Collector produktuaren orria.

Deskargatu Intel Trace Analyzer eta Collector

  • Intel® oneAPI HPC Toolkit-aren zati gisa
  • tresna autonomo gisa

Aurrebaldintzak

  • Intel Trace Analyzer and Collector exekutatu aurretik, ziurtatu azken Intel® MPI Liburutegia eta Intel® oneAPI DPC++/C++ Compiler edo Intel® Fortran Compiler instalatu dituzula.
  • Honek konpiladoreetarako, Intel MPI Liburutegirako eta Intel Trace Analyzer and Collector behar diren ingurune-aldagaiak ezartzen ditu, eta zure aplikazioen jarraipena egiteko prest zaude.
  • Informazio gehiago lortzeko, ikus: Intel® oneAPI HPC Toolkit Sistema-baldintzak.

Lan-fluxua ulertu

  1. Jarraitu zure aplikazioa
  2. MPI funtzio aktiboenak aztertzea
  3. Elkarreragin problematikoak identifikatzea
  4. Hobetu zure aplikazioaren errendimendua arazoak sortzen dituen funtzioa ordezkatuz

Jarraitu zure MPI aplikazioa

Sortu arrasto bat file gertaeren erregistroak biltzeko aplikazioaren portaera aztertzeko.

  1. Konfiguratu Intel® Trace Analyzer eta Collector abiarazteko ingurunea oneAPI instalazio zuzendariaren setvars script-a exekutatuz
    OHARRA
    Lehenespenez, Intel Trace Analyzer eta Collector instalatuta dago /opt/intel/oneapi/itac Linux* OSrako eta Programarako Files (x86)\Intel\oneAPI\itac\latest Windows* OSrako.
    Linux-en:
    $ source /opt/intel/oneapi/setvars.sh
    Windows-en:
    “C:\Programa Files (x86)\Intel\oneAPI\setvars.bat”
  2. Exekutatu zure MPI aplikazioa eta sortu arrasto bat -trace aukerarekin.
    Linux-en:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    Windows-en:
    Konpilatu aplikazioa eta bildu arrastoa.
    Intel oneAPI DPC++/C++ konpilatzailerako, exekutatu:
    > mpiicc -trace poisson_sendrecv.single.c
    Intel Fortran Compiler-erako, exekutatu:
    > mpiifort -trace poisson_sendrecv.single.f
    Adibample-ek arrasto bat (stf*) sortzen du asample poisson_sendrcv.single MPI aplikazioa
  3. Ireki sortutako .stf file Intel Trace Analyzer-ekin Intel Trace Analyzer eta Collector-ekin.
    Linux-en:
    $ trazeanalyzer ./ poisson_sendrecv.single.stf
    Windows-en:
    trazeanalyzer poisson_sendrecv.single.stf

OHARRA
Proba egiteko, aurrez bildutako arrasto bat deskarga dezakezu file poisson_sendrecv.single.stf dokumentu honetan erabilitako poissonrako eta ireki Intel Trace Analyzer eta Collector-ekin.
.stf file Laburpen orrian irekitzen da view, zure aplikazioaren errendimenduari buruzko informazio orokorra adierazten duena:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-1-rekinHasi-Intel-Trace-Analyzer-eta-Collector-fig-2-rekinOHARRA Intel Trace Analyzer eta Collector funtzioari buruzko informazio gehiago lortzeko, ikusi Informazio gehiago.

Aztertu MPI Funtzio Aktiboenak

Aztertu MPI aplikazio baten portaera, aurkitu botilak eta identifikatu serializazioa aplikazioaren errendimendua hobetzeko bideak aurkitzeko.

  1. Laburpen orritik ireki Gertaeren kronograma view Jarraitu > Grafikoak > Gertaeren kronograma klik eginez, MPI funtzio nagusien azterketa sakona egiteko.
    Diagramak prozesu indibidualaren jarduerak erakusten ditu denboran zehar.
    Aplikazio-lana iteratiboa da, non iterazio bakoitza zati konputazional batez eta MPI komunikazioz osatuta dagoen.
  2. Identifikatu iterazio bakarra zentratu eta handitu ezazu sagua arrastatu behar den denbora tartean:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-3-rekinArrastoa view hautatu duzun arrastoaren barruan dagoen atala erakusten du. Gertaeren denbora-lerroaren diagramak hautatutako iterazioan aktibo egon ziren gertaerak erakusten ditu.
    • Barra horizontalek prozesu horietan deitzen diren funtzioak dituzten prozesuak adierazten dituzte.
    • Lerro beltzek prozesuen artean bidalitako mezuak adierazten dituzte. Lerro hauek igortzeko eta jasotzeko prozesuak lotzen dituzte.
    • Lerro urdinek eragiketa kolektiboak adierazten dituzte, hala nola emititzeko edo murrizteko eragiketak.
  3. Aldatu Flat Pro-rafile fitxa (A) zuk (hautatu duzun gertaeren denbora-lerroan) exekutatzen diren funtzioak gertutik ikusteko.Hasi-Intel-Trace-Analyzer-eta-Collector-fig-4-rekin
  4. Destaldekatu MPI funtzioak zure aplikazioan MPI prozesuen jarduera aztertzeko.
    Horretarako, egin klik eskuineko botoiarekin Prozesu guztiak > Talde MPI (B) Flat Pro-nfile eta aukeratu UngroupMPI. Eragiketa honek MPI dei indibidualak agerian uzten ditu.
  5. Iterazio hasieran MPI_Sendrecv erabiliz bizilagun zuzenekin komunikatzeko prozesuak aztertzea. Adibidezample:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-5-rekin
    • a. mendeanample, MPI_Sendrecv datu-trukeak botila-lepoa du: prozesuak ez du hurrengo bizilagunarekin daturik trukatzen aurrekoarekin trukea amaitu arte. Gertaeren kronograma view botila-lepo hau eskailera gisa erakusten du.
    • b. Iterazioaren amaieran MPI_Allreduce-k prozesu guztiak berriro sinkronizatzen ditu; horregatik bloke honek alderantzizko eskailera itxura du.
  6. Identifikatu serializazioa, Function Pro erabilizfile eta Message Profile views.
    • a. Ireki diagramak aldi berean:
      Function Pro-nfile diagrama, ireki Karga-balantzea fitxa.
    • Joan Charts menura Message Pro bat irekitzekofile.
    • b. Karga-balantzea fitxan, zabaldu MPI_Sendrecv eta MPI_Allreduce. Karga-balantzeak adierazten du MPI_Sendrecv-en igarotako denbora prozesu-zenbakiarekin batera handitzen dela, eta MPI_Allreduce-ren denbora gutxitzen den bitartean.
    • c. Aztertu Message Profile Grafikoa beheko eskuineko izkinan.
      Blokeen kolore-kodeak adierazten du maila altuago batetik maila baxuago batera bidaiatzen duten mezuek proportzionalki denbora gehiago behar dutela, maila baxuagotik maila altuago batera doazen mezuek eredu bikoiti-bakoiti ahula erakusten duten bitartean:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-6-rekin

Analisi konparatuaren emaitzek erakusten dute ez dagoela truke eredu konplexurik aplikazioan, trukea aldameneko prozesuekin bakarrik egiten da. Informazioa ezinbestekoa izango da zure aplikazioaren errendimendua hobetzeko komunikazioak aldatuz urratsa aplikazioaren komunikazio eredua optimizatzeko.

Komunikazio desorekatuak identifikatzea

Begiratu zure aplikazioa egoera ezin hobean eta alderatu jatorrizko arrastoa file idealizatuarekin elkarrekintza problematikoak isolatzeko.

  1. Sortu idealizatu bat file:
    • a. Hautatu Aurreratua > Idealizazioa edo egin klik botoianHasi-Intel-Trace-Analyzer-eta-Collector-fig-7-rekin (Idealizazioa) tresna-barrako botoia.
    • b. Egiaztatu idealizazio-parametroak Idealizazioa elkarrizketa-koadroan (arrasto ideala file bihurtzeko izena eta denbora tartea).
    • c. Egin klik Hasi zure arrastoa idealizatzeko.
  2. Konparatu jatorrizko arrastoa traza idealizatuarekin:
    • a. Hautatu Aurreratua > Desoreka diagrama edo egin klik botoian Hasi-Intel-Trace-Analyzer-eta-Collector-fig-8-rekin(Desoreka Diagrama) tresna-barrako botoia.
    • b. Desoreka-diagrama elkarrizketa-koadroan, egin klik Ireki beste bat File botoia, nabigatu traza idealizatura eta hautatu.
    • c. Desoreka-diagrama leihoan, egin klik Erabateko modua botoian eta hautatu Matxura modua.

Hasi-Intel-Trace-Analyzer-eta-Collector-fig-9-rekin

Ikus dezakezu MPI_Sendrecv dela denbora gehien hartzen duen funtzioa. Desoreka pisua bistaratzen da
kolore argia eta % 10 inguru hartzen du MPI_Sendrecv funtziorako. Hau da prozesuek elkarren zain ematen duten denbora.

Hobetu zure aplikazioen errendimendua komunikazioak aldatuz

  1. Hobetu MPI aplikazioaren errendimendua blokeoa blokeatzen ez duten komunikazioetara aldatuz.
    Zure kodean ordezkatu MPI_Sendrcv seriea blokeatzen ez den komunikazioarekin: MPI_Isend eta MPI_Irecv. Adibidezample: jatorrizko kode zatia:
    // muga-truke
    void truke(para* p, grid* gr){
    int i,j;
    MPI_Status status_100, status_200, status_300, status_400;
    // lehen lerroa behera bidali
    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,
    &status_100);
    // azken lerroa igo
    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);
    Erabili Intel Trace Analyzer Konparazioa view seriatutako aplikazioa berrikusitakoarekin alderatzeko
    // kopiatu ezkerreko zutabea tmp arrayetara
    if(gr->ezkerrera != MPI_PROC_NULL){
    gr->x_new[i][gr->lcol+1] = eskuineko_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
    // zuzen bidali
    MPI_Send(eskuine_col, gr->lrow+2, MPI_DOUBLE, gr->eskuine, 400, MPI_COMM_WORLD); }
    if(gr->ezkerrera != MPI_PROC_NULL)
    {
    MPI_Recv(ezkerreko_col, gr->lrow+2, MPI_DOUBLE, gr->ezkerrera, 400, MPI_COMM_WORLD,&status_400); for(i=0; i< gr->lrow+2; i++
    {
    gr->x_new[i][0] = ezkerreko_kol[i];
    }
    }
    Kode zati eguneratua
    MPI_Eskaera eskaera[7];
    // lehen lerroa behera bidali
    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_Waitall(7, req, MPI_STATUSES_IGNORE);
    Zuzendu ondoren, berrikusitako aplikazioaren iterazio bakarra hurrengo adibidea izango daample:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-10-rekin
  2. Erabili Intel Trace Analyzer Konparazioa view seriatutako aplikazioa berrikusitakoarekin alderatzeko. Konparatu bi aztarna Konparazioaren laguntzaz View, joan View > Konparatu. Konparazioa View antzeko itxura du:Hasi-Intel-Trace-Analyzer-eta-Collector-fig-11-rekinKonparazioan View, blokeatzen ez den komunikazioa erabiltzeak serializazioa kentzen eta prozesuen komunikazio-denbora murrizten laguntzen duela ikus dezakezu.
    OHARRA Zure aplikazioaren nodo-mailako errendimenduari buruzko informazio gehiago lortzeko, ikusi dagozkien tresnen dokumentazioa: Intel® VTune™ Profiler MPI kodearen analisia eta Intel® MPI aplikazioak aztertzea Intel® Advisor erabiliz.

Argibide gehiago

Arakatu baliabide hauek Intel Trace Analyzer eta Collector-i buruzko informazio gehiago lortzeko.Hasi-Intel-Trace-Analyzer-eta-Collector-fig-12-rekinHasi-Intel-Trace-Analyzer-eta-Collector-fig-13-rekin

Jakinarazpenak eta ezeztapenak

  • Intel teknologiek gaitutako hardwarea, softwarea edo zerbitzua aktibatzea behar dezakete.
  • Produktu edo osagai ezin da guztiz segurua izan.
  • Zure kostuak eta emaitzak alda daitezke.
  • © Intel Corporation. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Beste izen eta marka batzuk beste batzuen jabetza direla erreklamatu daitezke.
  • Dokumentu honek ez du inolako lizentziarik (espresuki edo inplizituki, prebentzio bidez edo bestelakorik) ematen jabetza intelektualeko eskubiderik.
  • Deskribatutako produktuek diseinu-akatsak edo errata gisa ezagutzen diren akatsak izan ditzakete, produktua argitaratutako zehaztapenetatik aldentzea eragin dezaketenak. Uneko errata ezaugarrituak eskatuta daude eskuragarri.
  • Intelek uko egiten die berariazko eta inplizitutako berme guztiei, mugarik gabe, salgaitasunari, helburu jakin baterako egokitasunari eta ez-urratzeei buruzko berme inplizituak barne, bai eta errendimenduaren, negozioaren edo merkataritzaren erabileraren ondoriozko edozein bermerik ere.

Dokumentuak / Baliabideak

intel Hasi Intel Trace Analyzer eta Collector-ekin [pdfErabiltzailearen gida
Hasi Intel Trace Analyzer eta Collector-ekin, Hasi Intel, Trace Analyzer eta Collector, Collector-ekin

Erreferentziak

Utzi iruzkin bat

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *