Filloni me Intel Trace Analyzer dhe Collector

Fillimi-me-Intel-Trace-Analyzer-and-Collector-product

Filloni me Intel® Trace Analyzer dhe Collector

Përdorni këtë dokument Fillimi dhe një gjurmë të mbledhur paraprakisht file për të kaluar nëpër një analizë bazë të performancës MPI me Intel® Trace Analyzer dhe Collector.
Intel Trace Analyzer and Collector ndihmon në eksplorimin e efikasitetit të përdorimit të ndërfaqes së kalimit të mesazheve (MPI) dhe identifikimin e pikave të komunikimit, pengesat e sinkronizimit dhe balancimin e ngarkesës. Për më shumë informacion rreth produktit, shihni faqen e produktit të Intel Trace Analyzer and Collector.

Shkarkoni Intel Trace Analyzer and Collector

  • si pjesë e Intel® OneAPI HPC Toolkit
  • si një mjet i pavarur

Parakushtet

  • Përpara se të përdorni Intel Trace Analyzer and Collector, sigurohuni që të keni instaluar Intel® MPI Library dhe Intel® oneAPI DPC++/C++ Compiler ose Intel® Fortran Compiler.
  • Kjo vendos variablat e kërkuara të mjedisit për përpiluesit, Bibliotekën Intel MPI dhe Intel Trace Analyzer and Collector, dhe ju jeni gati të gjurmoni aplikacionet tuaja.
  • Për më shumë informacion, shihni: Kërkesat e Sistemit të Intel® OneAPI HPC Toolkit.

Kuptoni rrjedhën e punës

  1. Gjurmoni aplikacionin tuaj
  2. Analizoni funksionet më aktive MPI
  3. Identifikoni ndërveprimet problematike
  4. Përmirësoni performancën e aplikacionit tuaj duke zëvendësuar funksionin që shkakton problem

Gjurmoni aplikacionin tuaj MPI

Gjeneroni një gjurmë file për të mbledhur regjistrat e ngjarjeve për analizën e mëposhtme të sjelljes së aplikacionit.

  1. Konfiguro mjedisin për lëshimin e Intel® Trace Analyzer dhe Collector duke ekzekutuar skriptin setvars nga drejtori i instalimit të oneAPI
    SHËNIM
    Si parazgjedhje, Intel Trace Analyzer and Collector është instaluar në /opt/intel/oneapi/itac për Linux* OS dhe në Program Files (x86)\Intel\oneAPI\itac\më e fundit për Windows* OS.
    Në Linux:
    burimi $ /opt/intel/oneapi/setvars.sh
    Në Windows:
    “C:\Programi Files (x86)\Intel\oneAPI\setvars.bat"
  2. Drejtoni aplikacionin tuaj MPI dhe gjeneroni një gjurmë me opsionin -trace.
    Në Linux:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    Në Windows:
    Përpiloni aplikacionin dhe mblidhni gjurmët.
    Për përpiluesin Intel oneAPI DPC++/C++, ekzekutoni:
    > mpiicc -gjurmë poisson_sendrecv.single.c
    Për përpiluesin Intel Fortran, ekzekutoni:
    > mpiifort -gjurmë poisson_sendrecv.single.f
    Ky ishample gjeneron një gjurmë (stf*) për asample poisson_sendrcv. aplikacion i vetëm MPI
  3. Hapni .stf të gjeneruar file me Intel Trace Analyzer me Intel Trace Analyzer dhe Collector.
    Në Linux:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    Në Windows:
    traceanalyzer poisson_sendrecv.single.stf

SHËNIM
Për qëllime testimi, mund të shkarkoni një gjurmë të grumbulluar paraprakisht file poisson_sendrecv.single.stf për poisson-in e përdorur në këtë dokument dhe hapeni atë me Intel Trace Analyzer dhe Collector.
.stf file hapet në faqen përmbledhëse view, i cili paraqet informacion të përgjithshëm në lidhje me performancën e aplikacionit tuaj:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-1Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-2SHËNIM Për më shumë informacion në lidhje me funksionalitetin e Intel Trace Analyzer dhe Collector, shihni Mësoni më shumë.

Analizoni funksionet më aktive të MPI

Analizoni sjelljen e një aplikacioni MPI, gjeni pengesat dhe identifikoni serializimin për të gjetur mënyra për të përmirësuar performancën e aplikacionit.

  1. Nga faqja e Përmbledhjes hapni Afatin kohor të ngjarjes view duke klikuar Vazhdo > Grafikët > Kohëzgjatja e ngjarjeve për analizë të thellë të funksioneve kryesore MPI.
    Grafiku shfaq aktivitetet individuale të procesit me kalimin e kohës.
    Puna e aplikimit është përsëritëse, ku çdo përsëritje përbëhet nga një pjesë llogaritëse dhe komunikimet MPI.
  2. Identifikoni një përsëritje të vetme për t'u fokusuar dhe zmadhuar në të duke zvarritur miun mbi intervalin e kërkuar kohor:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-3Gjurmën view tregon seksionin brenda gjurmës që keni zgjedhur. Grafiku i linjës kohore të ngjarjeve tregon ngjarjet që ishin aktive gjatë përsëritjes së zgjedhur.
    • Shiritat horizontal paraqesin proceset me funksionet e thirrura në këto procese.
    • Vijat e zeza tregojnë mesazhet e dërguara ndërmjet proceseve. Këto linja lidhin proceset e dërgimit dhe marrjes.
    • Linjat blu përfaqësojnë operacione kolektive, të tilla si operacionet e transmetimit ose të reduktimit.
  3. Kalo në Flat Profile tab (A) për të parë më nga afër funksionet që ekzekutohen në pikën kohore që keni zgjedhur në "Kronologjinë e ngjarjeve".Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-4
  4. Zhgruponi funksionet MPI për të analizuar aktivitetin e procesit MPI në aplikacionin tuaj.
    Për ta bërë këtë, kliko me të djathtën mbi Të gjitha proceset > Grupi MPI (B) në Flat Profile dhe zgjidhni UngroupMPI. Ky operacion ekspozon thirrjet individuale MPI.
  5. Analizoni proceset që komunikojnë me fqinjët e tyre të drejtpërdrejtë duke përdorur MPI_Sendrecv në fillim të përsëritjes. Për shembullampe:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-5
    • a. Në shekampLe, shkëmbimi i të dhënave MPI_Sendrecv ka një pengesë: procesi nuk shkëmben të dhëna me fqinjin e tij të ardhshëm derisa të përfundojë shkëmbimi me atë të mëparshëm. Afatet kohore të ngjarjeve view e shfaq këtë pengesë si një shkallë.
    • b. MPI_Allreduce në fund të përsëritjes risinkronizon të gjitha proceset; prandaj ky bllok ka pamjen e kundërt të shkallëve.
  6. Identifikoni serializimin duke përdorur funksionin Profile dhe Message Profile views.
    • a. Hapni grafikët në të njëjtën kohë:
      Në funksionin Profile grafiku, hapni skedën Load Balance.
    • Shkoni te menyja Charts për të hapur një Message Profile.
    • b. Në skedën Load Balance, zgjeroni MPI_Sendrecv dhe MPI_Allreduce. Balancimi i ngarkesës tregon se koha e kaluar në MPI_Sendrecv rritet me numrin e procesit, ndërsa koha për MPI_Allreduce zvogëlohet.
    • c. Ekzaminoni Message Profile Grafikoni poshtë në këndin e poshtëm të djathtë.
      Kodimi i ngjyrave të blloqeve tregon se mesazhet që udhëtojnë nga një gradë më e lartë në një gradë më të ulët kanë nevojë proporcionalisht më shumë kohë ndërsa mesazhet që udhëtojnë nga një gradë më e ulët në një renditje më të lartë zbulojnë një lloj modeli të dobët çift-tek:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-6

Rezultatet e analizës krahasuese tregojnë se nuk ka modele komplekse shkëmbimi në aplikim, shkëmbimi kryhet vetëm me procese fqinje. Informacioni do të jetë thelbësor për të përmirësuar performancën e aplikacionit tuaj duke ndryshuar hapin e komunikimeve për të optimizuar modelin e komunikimit të aplikacionit.

Identifikoni komunikimet e çekuilibruara

Shikoni aplikacionin tuaj në rrethana ideale dhe krahasoni gjurmën origjinale file me atë të idealizuar për të izoluar ndërveprimet problematike.

  1. Krijo një të idealizuar file:
    • a. Zgjidhni Avancuar > Idealizimi ose klikoniFillimi-me-Intel-Trace-Analyzer-and-Collector-fig-7 Butoni i shiritit të veglave (Idealizimi).
    • b. Kontrolloni parametrat e idealizimit në kutinë e dialogut Idealizimi (gjurmë ideale file emri dhe diapazoni kohor për konvertim).
    • c. Klikoni Start për të idealizuar gjurmën tuaj.
  2. Krahasoni gjurmën origjinale me gjurmën e idealizuar:
    • a. Zgjidhni Avancuar > Diagrami i çekuilibrit ose klikoni Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-8Butoni i shiritit të veglave (Diagrami i çekuilibrit).
    • b. Në kutinë e dialogut Diagrami i pabarazisë, klikoni Hap një tjetër File butonin, lundroni te gjurma e idealizuar dhe zgjidhni atë.
    • c. Në dritaren e Diagramit të Çekuilibrit, klikoni butonin Total Mode dhe zgjidhni Breakdown Mode.

Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-9

Mund të shihni që MPI_Sendrecv është funksioni që kërkon më shumë kohë. Pesha e çekuilibrit shfaqet në
ngjyra të lehta dhe përbën rreth 10% për funksionin MPI_Sendrecv. Kjo është koha që proceset kalojnë duke pritur njëri-tjetrin.

Përmirësoni performancën e aplikacionit tuaj duke ndryshuar komunikimet

  1. Përmirësoni performancën e aplikacionit MPI duke ndryshuar bllokimin në komunikime jo-bllokuese.
    Në kodin tuaj zëvendësoni serialin MPI_Sendrcv me komunikim jo-bllokues: MPI_Isend dhe MPI_Irecv. Për shembullample: Pjesë e kodit origjinal:
    // shkëmbim kufitar
    shkëmbim i zbrazët (para* p, rrjet* gr){
    int i,j;
    MPI_Statusi_status_100, status_200, status_300, status_400;
    // dërgoni rreshtin e parë
    MPI_Send(gr->x_i ri[1], gr->lcol+2, MPI_DOUBLE, gr->poshtë, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_i ri[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->lart, 100, MPI_COMM_WORLD,
    &status_100);
    // dërgo rreshtin e fundit
    MPI_Send(gr->x_i ri[gr->lrow], gr->lcol+2, MPI_DOUBLE, gr->lart, 200, MPI_COMM_WORLD);
    MPI_Recv(gr->x_i ri[0], gr->lcol+2, MPI_DOUBLE, gr->poshtë, 200, MPI_COMM_WORLD, &status_200);
    Përdorni krahasimin e analizuesit të gjurmëve Intel view për të krahasuar aplikacionin e serializuar me atë të rishikuar
    // kopjoni kolonën e majtë në vargje tmp
    if(gr->majtas != MPI_PROC_NULL){
    gr->x_i ri[i][gr->lcol+1] = e drejta_col[i]; drejt_col[i] = gr->x_i ri[i][gr->lcol];
    // dërgo djathtas
    MPI_Send(djathtas_col, gr->lrow+2, MPI_DOUBLE, gr->djathtas, 400, MPI_COMM_WORLD); }
    if(gr->majtas != MPI_PROC_NULL)
    {
    MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->majtas, 400, MPI_COMM_WORLD,&status_400); for(i=0; i< gr->lrow+2; i++
    {
    gr->x_i ri[i][0] = majta_col[i];
    }
    }
    Copë kodi u përditësua
    Kërkesa MPI_Kërkesë[7];
    // dërgoni rreshtin e parë
    MPI_Isend(gr->x_i ri[1], gr->lcol+2, MPI_DOUBLE, gr->poshtë, 100, MPI_COMM_WORLD, &req[0]);
    MPI_Irecv(gr->x_i ri[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->lart, 100, MPI_COMM_WORLD, &req[1]);
    …..
    MPI_Waitall(7, kërkesa, MPI_STATUSES_IGNORE);
    Pasi të korrigjohet, përsëritja e vetme e aplikacionit të rishikuar do të duket si shembulli i mëposhtëmampe:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-10
  2. Përdorni krahasimin e analizuesit të gjurmëve Intel view për të krahasuar aplikacionin e serializuar me atë të rishikuar. Krahasoni dy gjurmë me ndihmën e Krahasimit View, duke shkuar në View > Krahaso. Krahasimi View duket e ngjashme me:Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-11Në Krahasimin View, mund të shihni që përdorimi i komunikimit pa bllokim ndihmon në heqjen e serializimit dhe uljen e kohës së komunikimit të proceseve.
    SHËNIM Për më shumë informacion në lidhje me performancën e aplikacionit tuaj në nivel nyje, shihni dokumentacionin për mjetet përkatëse: Intel® VTune™ Profiler Analiza e kodit MPI dhe analizimi i aplikacioneve Intel® MPI duke përdorur Intel® Advisor.

Mësoni më shumë

Eksploroni burimet e mëposhtme për më shumë informacion rreth Intel Trace Analyzer dhe Collector.Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-12Fillimi-me-Intel-Trace-Analyzer-and-Collector-fig-13

Njoftimet dhe mohimet

  • Teknologjitë Intel mund të kërkojnë aktivizimin e harduerit, softuerëve ose shërbimeve.
  • Asnjë produkt apo komponent nuk mund të jetë absolutisht i sigurt.
  • Kostot dhe rezultatet tuaja mund të ndryshojnë.
  • © Intel Corporation. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
  • Asnjë licencë (e shprehur ose e nënkuptuar, nga estoppel ose ndryshe) për asnjë të drejtë të pronësisë intelektuale nuk jepet nga ky dokument.
  • Produktet e përshkruara mund të përmbajnë defekte të dizajnit ose gabime të njohura si gabime të cilat mund të bëjnë që produkti të devijojë nga specifikimet e publikuara. Gabimet aktuale të karakterizuara janë në dispozicion sipas kërkesës.
  • Intel heq dorë nga të gjitha garancitë e shprehura dhe të nënkuptuara, duke përfshirë, pa kufizim, garancitë e nënkuptuara të tregtueshmërisë, përshtatshmërisë për një qëllim të caktuar dhe mos-shkeljes, si dhe çdo garanci që rrjedh nga rrjedha e performancës, kursi i marrëveshjes ose përdorimi në tregti.

Dokumentet / Burimet

intel Filloni me Intel Trace Analyzer dhe Collector [pdfUdhëzuesi i përdoruesit
Filloni me Intel Trace Analyzer and Collector, Filloni me Intel, Trace Analyzer and Collector, Collector

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *