Ibda bl-Intel Trace Analyzer u Collector
Ibda bl-Intel® Trace Analyzer and Collector
Uża dan id-dokument Ibda u traċċa miġbura minn qabel file biex timxi permezz ta 'analiżi bażika tal-prestazzjoni MPI ma' Intel® Trace Analyzer u Collector.
Intel Trace Analyzer and Collector jgħin jesplora l-effiċjenza fl-użu tal-interface tal-passaġġ tal-messaġġi (MPI) u jidentifika hotspots tal-komunikazzjoni, konġestjonijiet tas-sinkronizzazzjoni, u l-ibbilanċjar tat-tagħbija. Għal aktar informazzjoni dwar il-prodott, ara l-paġna tal-prodott Intel Trace Analyzer and Collector.
Niżżel Intel Trace Analyzer u Kollettur
- bħala parti mill-Intel® oneAPI HPC Toolkit
- bħala għodda waħedha
Prerekwiżiti
- Qabel ma tħaddem Intel Trace Analyzer and Collector, kun żgur li installajt l-aħħar Intel® MPI Library u Intel® oneAPI DPC++/C++ Compiler jew Intel® Fortran Compiler.
- Dan jistabbilixxi l-varjabbli ambjentali meħtieġa għall-kompilaturi, l-Intel MPI Library, u l-Intel Trace Analyzer and Collector, u inti lest biex traċċa l-applikazzjonijiet tiegħek.
- Għal aktar informazzjoni, ara: Intel® oneAPI HPC Toolkit System Requirements.
Ifhem il-fluss tax-xogħol
- Intraċċa l-Applikazzjoni Tiegħek
- Analizza l-aktar funzjonijiet MPI attivi
- Identifika interazzjonijiet problematiċi
- Ittejjeb il-prestazzjoni tal-applikazzjoni tiegħek billi tissostitwixxi l-funzjoni li tikkawża l-problema
Intraċċa l-Applikazzjoni MPI Tiegħek
Iġġenera traċċa file biex tiġbor reġistri tal-avvenimenti għall-analiżi tal-imġieba tal-applikazzjoni li ġejja.
- Stabbilixxi l-ambjent għat-tnedija tal-Intel® Trace Analyzer and Collector billi tħaddem l-iskrittura setvars mid-direttur tal-installazzjoni oneAPI
NOTA
B'mod awtomatiku, Intel Trace Analyzer and Collector huwa installat għal /opt/intel/oneapi/itac għal Linux* OS u għall-Programm Files (x86)\Intel\oneAPI\itac\latest għall-Windows* OS.
Fuq Linux:
$ sors /opt/intel/oneapi/setvars.sh
Fuq Windows:
“C:\Programm Files (x86)\Intel\oneAPI\setvars.bat” - Mexxi l-applikazzjoni MPI tiegħek u ġġenera traċċa bl-għażla -trace.
Fuq Linux:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
Fuq Windows:
Iġbor l-app u iġbor it-traċċa.
Għal Intel oneAPI DPC++/C++ Compiler, mexxi:
> mpiicc -trace poisson_sendrecv.single.c
Għall-Intel Fortran Compiler, mexxi:
> mpiifort -trace poisson_sendrecv.single.f
Dan example jiġġenera traċċa (stf*) għal asample poisson_sendrcv.single MPI applikazzjoni - Iftaħ il-.stf iġġenerat file ma 'Intel Trace Analyzer ma' Intel Trace Analyzer u Kollettur.
Fuq Linux:
$ traceanalyzer ./ poisson_sendrecv.single.stf
Fuq Windows:
traceanalyzer poisson_sendrecv.single.stf
NOTA
Għal skopijiet ta' ttestjar, tista' tniżżel traċċa miġbura minn qabel file poisson_sendrecv.single.stf għall-poisson użat f'dan id-dokument u iftaħ b'Intel Trace Analyzer u Collector.
Il-.stf file tiftaħ fil-Paġna Sommarju view, li tirrappreżenta informazzjoni ġenerali dwar il-prestazzjoni tal-applikazzjoni tiegħek:NOTA Għal aktar informazzjoni dwar Intel Trace Analyzer u l-funzjonalità tal-Kollezzjoni, ara Tgħallem Aktar.
Analizza l-Funzjonijiet MPI l-aktar Attivi
Analizza l-imġieba ta 'applikazzjoni MPI, sib ostakoli u identifika s-serjelizzazzjoni biex issib il-modi kif ittejjeb il-prestazzjoni tal-applikazzjoni.
- Mill-Paġna Sommarju tiftaħ il-Kronoloġija tal-Avvenimenti view billi tikklikkja Kompli > Ċarts > Kronoloġija tal-avvenimenti għal analiżi profonda tal-funzjonijiet MPI ewlenin.
It-tabella turi attivitajiet tal-proċess individwali matul iż-żmien.
Ix-xogħol ta 'applikazzjoni huwa iterattiv, fejn kull iterazzjoni tikkonsisti minn parti komputazzjonali u komunikazzjonijiet MPI. - Identifika iterazzjoni waħda biex tiffoka fuqha u żżom fiha billi tkaxkar il-maws fuq l-intervall ta' ħin meħtieġ:
It-traċċa view turi s-sezzjoni fi ħdan it-traċċa li għażilt. Il-grafika tal-Kronoloġija tal-Avvenimenti turi l-avvenimenti li kienu attivi matul l-iterazzjoni magħżula.
- Il-vireg orizzontali jirrappreżentaw il-proċessi bil-funzjonijiet imsejħa f'dawn il-proċessi.
- Linji suwed jindikaw messaġġi mibgħuta bejn il-proċessi. Dawn il-linji jgħaqqdu proċessi li jibagħtu u jirċievu.
- Linji blu jirrappreżentaw operazzjonijiet kollettivi, bħal operazzjonijiet ta 'xandir jew tnaqqis.
- Aqleb għall-Flat Profile tab (A) biex tagħti ħarsa aktar mill-qrib lejn il-funzjonijiet li qed jeżegwixxu fil-punt tal-ħin li int (għażlet fil-Kronoloġija tal-Avvenimenti.
- Separa l-funzjonijiet MPI biex tanalizza l-attività tal-proċess MPI fl-applikazzjoni tiegħek.
Biex tagħmel dan, ikklikkja bil-lemin fuq il-Proċessi Kollha > Grupp MPI ( B) fil-Flat Profile u agħżel UngroupMPI. Din l-operazzjoni tesponi s-sejħiet MPI individwali. - Analizza l-proċessi li jikkomunikaw mal-ġirien diretti tagħhom billi tuża MPI_Sendrecv fil-bidu tal-iterazzjoni. Per example:
- a. Fis-sample, l-iskambju tad-data MPI_Sendrecv għandu ostakolu: il-proċess ma jiskambjax data mal-ġar li jmiss tiegħu sakemm l-iskambju ma 'dak ta' qabel ikun komplut. Il-Ħinijiet tal-Avvenimenti view juri dan il-konġestjoni bħala taraġ.
- b. L-MPI_Allreduce fl-aħħar tal-iterazzjoni jerġa 'jissinkronizza l-proċessi kollha; huwa għalhekk li din il-blokka għandha l-apparenza tat-taraġ b'lura.
- Identifika serialization, bl-użu tal-Funzjoni Profile u Message Profile views.
- a. Iftaħ iċ-ċarts fl-istess ħin:
Fil-Funzjoni Profile chart, iftaħ it-tab tal-Bilanċ tat-Tagħbija. - Mur fil-menu Charts biex tiftaħ Message Profile.
- b. Fit-tab tal-Bilanċ tat-Tagħbija, jespandi MPI_Sendrecv u MPI_Allreduce. L-Ibbilanċjar tat-Tagħbija jindika li l-ħin mgħoddi f'MPI_Sendrecv jiżdied man-numru tal-proċess, filwaqt li l-ħin għal MPI_Allreduce jonqos.
- c. Eżamina l-Messaġġ Profile Tabella 'l isfel fir-rokna t'isfel tal-lemin.
Il-kodifikazzjoni tal-kulur tal-blokki tindika li l-messaġġi li jivvjaġġaw minn rank ogħla għal rank aktar baxx jeħtieġu proporzjonalment aktar ħin filwaqt li l-messaġġi li jivvjaġġaw minn rank aktar baxx għal rank ogħla jiżvelaw tip ta 'mudell dgħajjef anke-fard:
- a. Iftaħ iċ-ċarts fl-istess ħin:
Ir-riżultati tal-analiżi komparattiva juru li m'hemm l-ebda mudelli ta 'skambju kumplessi fl-applikazzjoni, l-iskambju jitwettaq biss bi proċessi ġirien. L-informazzjoni se tkun essenzjali biex ittejjeb il-Prestazzjoni tal-Applikazzjoni Tiegħek billi tibdel il-pass tal-Komunikazzjoni biex jiġi ottimizzat il-mudell tal-komunikazzjoni tal-applikazzjoni.
Identifika Komunikazzjonijiet Żbilanċjati
Ara l-applikazzjoni tiegħek taħt iċ-ċirkostanzi ideali u qabbel it-traċċa oriġinali file ma’ dik idealizzata biex tiżola interazzjonijiet problematiċi.
- Oħloq idealizzat file:
- a. Agħżel Avvanzata > Idealizzazzjoni jew ikklikkja l-
(Idealizzazzjoni) buttuna toolbar.
- b. Iċċekkja l-parametri ta 'idealizzazzjoni fil-kaxxa ta' dialog Idealizzazzjoni (traċċa ideali file isem u medda ta’ żmien għall-konverżjoni).
- c. Ikklikkja Ibda biex tiidealizza t-traċċa tiegħek.
- a. Agħżel Avvanzata > Idealizzazzjoni jew ikklikkja l-
- Qabbel it-traċċa oriġinali mat-traċċa idealizzata:
- a. Agħżel Avvanzata > Dijagramma ta' Żbilanċ jew ikklikkja l-
(Dijagramma Żbilanċ) buttuna tal-għodda.
- b. Fil-kaxxa ta 'dialog Dijagramma tal-Iżbilanċ, ikklikkja l- Iftaħ Ieħor File buttuna, innaviga lejn it-traċċa idealizzata, u agħżelha.
- c. Fit-tieqa tad-Dijagramma tal-Iżbilanċ, ikklikkja l-buttuna Total Mode u agħżel Breakdown Mode.
- a. Agħżel Avvanzata > Dijagramma ta' Żbilanċ jew ikklikkja l-
Tista' tara li MPI_Sendrecv hija l-aktar funzjoni li tieħu ħafna ħin. Il-piż tal-iżbilanċ jintwera fi
kulur ċar u jinkludi madwar 10% għall-funzjoni MPI_Sendrecv. Dan huwa l-ħin li l-proċessi jqattgħu jistennew lil xulxin.
Ittejjeb il-Prestazzjoni tal-Applikazzjoni Tiegħek billi tibdel il-Komunikazzjonijiet
- Ittejjeb il-prestazzjoni tal-applikazzjoni MPI billi tibdel l-imblukkar għal komunikazzjonijiet li ma jimblukkawx.
Fil-kodiċi tiegħek ibdel is-serje MPI_Sendrcv b'komunikazzjoni mhux imblukkata: MPI_Isend u MPI_Irecv. Per example: Snippet tal-kodiċi oriġinali:
// skambju tal-konfini
skambju null(para* p, grid* gr){
int i,j;
MPI_Status status_100, status_200, status_300, status_400;
// tibgħat l-ewwel ringiela
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);
// tibgħat l-aħħar ringiela
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);
Uża l-Intel Trace Analyzer Paragun view biex tqabbel l-applikazzjoni serjali ma' dik riveduta
// kopja tal-kolonna tax-xellug għal arrays tmp
if(gr->xellug != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
// ibgħat id-dritt
MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr-> right, 400, MPI_COMM_WORLD); }
if(gr->xellug != MPI_PROC_NULL)
{
MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->left, 400, MPI_COMM_WORLD,&status_400); għal(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = left_col[i];
}
}
Snippet tal-kodiċi aġġornat
MPI_Request req[7];
// tibgħat l-ewwel ringiela
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);
Ladarba tiġi kkoreġuta, l-iterazzjoni unika tal-applikazzjoni riveduta tidher bħal din li ġejja example: - Uża l-Intel Trace Analyzer Paragun view biex tqabbel l-applikazzjoni serjali ma' dik riveduta. Qabbel żewġ traċċi bl-għajnuna tat-Tqabbil View, sejjer View > Qabbel. Il-Paragun View jidher simili għal:
Fil-Paragun View, tista 'tara li l-użu ta' komunikazzjoni li ma jimblokkax jgħin biex titneħħa s-serializzazzjoni u tnaqqas il-ħin tal-komunikazzjoni tal-proċessi.
NOTA Għal aktar informazzjoni dwar il-prestazzjoni fil-livell tan-nodi tal-applikazzjoni tiegħek, ara d-dokumentazzjoni għall-għodod rispettivi: Intel® VTune™ Profiler Analiżi tal-Kodiċi MPI u Analiżi ta 'applikazzjonijiet Intel® MPI bl-użu ta' Intel® Advisor.
Tgħallem Aktar
Esplora r-riżorsi li ġejjin għal aktar informazzjoni dwar Intel Trace Analyzer u Collector.
Avviżi u Ċaħdiet
- It-teknoloġiji Intel jistgħu jeħtieġu attivazzjoni ta' ħardwer, softwer jew servizz attivat.
- L-ebda prodott jew komponent ma jista 'jkun assolutament sigur.
- L-ispejjeż u r-riżultati tiegħek jistgħu jvarjaw.
- © Korporazzjoni Intel. Intel, il-logo Intel, u marki oħra Intel huma trademarks ta' Intel Corporation jew is-sussidjarji tagħha. Ismijiet u marki oħra jistgħu jiġu mitluba bħala l-proprjetà ta 'oħrajn.
- L-ebda liċenzja (espressa jew impliċita, b'estoppel jew mod ieħor) għal xi drittijiet tal-proprjetà intellettwali ma tingħata minn dan id-dokument.
- Il-prodotti deskritti jista 'jkun fihom difetti tad-disinn jew żbalji magħrufa bħala errata li jistgħu jikkawżaw li l-prodott jiddevja mill-ispeċifikazzjonijiet ippubblikati. Errata karatterizzata kurrenti huma disponibbli fuq talba.
- Intel tiċħad il-garanziji espressi u impliċiti kollha, inklużi mingħajr limitazzjoni, il-garanziji impliċiti ta' kummerċjabbiltà, idoneità għal skop partikolari, u non-ksur, kif ukoll kwalunkwe garanzija li tirriżulta mill-kors tal-prestazzjoni, il-kors tan-negozju, jew l-użu fil-kummerċ.
Dokumenti / Riżorsi
![]() |
intel Ibda ma' Intel Trace Analyzer u Collector [pdfGwida għall-Utent Ibda ma' Intel Trace Analyzer u Kollettur, Ibda ma' Intel, Trace Analyzer u Kollettur, Kollettur |