Pagsugod sa Intel Trace Analyzer ug Collector
Pagsugod sa Intel® Trace Analyzer ug Collector
Gamita kini nga dokumento sa Pagsugod ug usa ka pre-collected nga pagsubay file sa paglakaw pinaagi sa usa ka batakang pagtuki sa performance sa MPI uban sa Intel® Trace Analyzer ug Collector.
Ang Intel Trace Analyzer ug Collector nagtabang sa pagsuhid sa message passing interface (MPI) nga kahusayan sa paggamit ug pag-ila sa mga hotspot sa komunikasyon, mga bottleneck sa pag-synchronize, ug pagbalanse sa load. Alang sa dugang nga impormasyon bahin sa produkto, tan-awa ang panid sa produkto sa Intel Trace Analyzer ug Collector.
Pag-download sa Intel Trace Analyzer ug Collector
- isip kabahin sa Intel® oneAPI HPC Toolkit
- isip usa ka standalone nga himan
Mga kinahanglanon
- Sa dili pa modagan ang Intel Trace Analyzer ug Collector, siguroha nga imong na-install ang pinakabag-o nga Intel® MPI Library ug Intel® oneAPI DPC++/C++ Compiler o Intel® Fortran Compiler.
- Nagtakda kini sa gikinahanglan nga mga variable sa palibot alang sa mga compiler, ang Intel MPI Library, ug Intel Trace Analyzer ug Collector, ug andam ka nga masubay ang imong mga aplikasyon.
- Para sa dugang nga impormasyon, tan-awa ang: Intel® oneAPI HPC Toolkit System Requirements.
Sabta ang Workflow
- Pagsubay sa Imong Aplikasyon
- Analisaha ang labing aktibo nga mga gimbuhaton sa MPI
- Pag-ila sa mga problema nga interaksyon
- Pauswaga ang performance sa imong aplikasyon pinaagi sa pag-ilis sa function nga hinungdan sa problema
Pagsubay sa Imong Aplikasyon sa MPI
Paghimo og usa ka pagsubay file aron mangolekta og mga log sa panghitabo para sa mosunod nga pagtuki sa kinaiya sa aplikasyon.
- I-set up ang palibot alang sa paglansad sa Intel® Trace Analyzer ug Collector pinaagi sa pagpadagan sa setvars script gikan sa oneAPI installation director
NOTA
Sa kasagaran, ang Intel Trace Analyzer ug Collector gi-install sa /opt/intel/oneapi/itac para sa Linux* OS ug sa Program Files (x86)\Intel\oneAPI\itac\latest para sa Windows* OS.
Sa Linux:
$ tinubdan /opt/intel/oneapi/setvars.sh
Sa Windows:
"C:\Programa Files (x86)\Intel\oneAPI\setvars.bat” - Pagdalagan ang imong MPI nga aplikasyon ug paghimo og usa ka pagsubay gamit ang -trace nga kapilian.
Sa Linux:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
Sa Windows:
I-compile ang app ug kolektaha ang pagsubay.
Para sa Intel oneAPI DPC++/C++ Compiler, pagdagan:
> mpiicc -trace poisson_sendrecv.single.c
Alang sa Intel Fortran Compiler, pagdagan:
> mpiifort -trace poisson_sendrecv.single.f
Kini nga example makamugna og usa ka pagsubay (stf*) alang sa ingonample poisson_sendrcv.usa ka aplikasyon sa MPI - Ablihi ang namugna nga .stf file uban sa Intel Trace Analyzer uban sa Intel Trace Analyzer ug Collector.
Sa Linux:
$ traceanalyzer ./ poisson_sendrecv.single.stf
Sa Windows:
traceanalyzer poisson_sendrecv.single.stf
NOTA
Alang sa mga katuyoan sa pagsulay, mahimo nimong i-download ang usa ka pre-collected nga pagsubay file poisson_sendrecv.single.stf para sa poisson nga gigamit niini nga dokumento ug ablihi kini gamit ang Intel Trace Analyzer ug Collector.
Ang .stf file abli sa Summary Page view, nga nagrepresentar sa kinatibuk-ang impormasyon bahin sa performance sa imong aplikasyon:NOTA Para sa dugang nga impormasyon bahin sa Intel Trace Analyzer ug Collector functionality, tan-awa ang Pagkat-on pa.
Analisaha ang Labing Aktibo nga Mga Kalihokan sa MPI
Analisaha ang usa ka pamatasan sa aplikasyon sa MPI, pangitaa ang mga bottleneck ug pag-ila sa serialization aron makit-an ang mga paagi aron mapaayo ang pasundayag sa aplikasyon.
- Gikan sa Summary Page ablihi ang Timeline sa Hitabo view pinaagi sa pag-klik sa Continue > Charts > Event Timeline para sa lawom nga pagtuki sa mga top MPI functions.
Ang tsart nagpakita sa indibidwal nga mga kalihokan sa proseso sa paglabay sa panahon.
Ang trabaho sa aplikasyon mao ang iterative, diin ang matag pag-uli naglangkob sa usa ka computational nga bahin ug mga komunikasyon sa MPI. - Pag-ila sa usa ka pag-uli aron ipunting ug i-zoom kini pinaagi sa pag-drag sa imong mouse sa gikinahanglan nga agwat sa oras:
Ang pagsubay view nagpakita sa seksyon sa sulod sa pagsubay nga imong gipili. Ang tsart sa Timeline sa Hitabo nagpakita sa mga panghitabo nga aktibo sa panahon sa pinili nga pag-uli.
- Ang mga pinahigda nga bar nagrepresentar sa mga proseso nga adunay mga gimbuhaton nga gitawag niini nga mga proseso.
- Ang itom nga mga linya nagpakita sa mga mensahe nga gipadala tali sa mga proseso. Kini nga mga linya nagkonektar sa pagpadala ug pagdawat sa mga proseso.
- Ang mga asul nga linya nagrepresentar sa mga kolektibong operasyon, sama sa pagsibya o pagkunhod sa mga operasyon.
- Pagbalhin sa Flat Profile tab (A) aron masusi pag-ayo ang mga gimbuhaton nga gipatuman sa oras nga imong gipili (gipili sa Timeline sa Hitabo.
- Ang Ungroup MPI naglihok sa pag-analisar sa kalihokan sa proseso sa MPI sa imong aplikasyon.
Aron mahimo kini, i-right-click ang Tanan nga Proseso> Group MPI ( B) sa Flat Profile ug pilia ang UngroupMPI. Kini nga operasyon nagbutyag sa indibidwal nga mga tawag sa MPI. - Analisaha ang mga proseso sa pagpakigsulti sa ilang direktang mga silingan gamit ang MPI_Sendrecv sa pagsugod sa pag-uli. Kay example:
- a. Sa sample, ang MPI_Sendrecv data exchange adunay usa ka bottleneck: ang proseso wala magbayloay og data sa iyang sunod nga silingan hangtud nga ang pagbayloay sa nauna makompleto. Ang mga Timeline sa Panghitabo view gipakita kini nga bottleneck ingon usa ka hagdanan.
- b. Ang MPI_Allreduce sa katapusan sa pag-uli nag-resynchronize sa tanan nga mga proseso; mao nga kini nga bloke adunay reverse hagdanan nga hitsura.
- Ilha ang serialization, gamit ang Function Profile ug Message Profile views.
- a. Ablihi ang mga tsart sa samang higayon:
Sa Function Profile tsart, ablihi ang Load Balancetab. - Adto sa menu sa Charts aron maablihan ang Message Profile.
- b. Sa tab nga Load Balance, palapad ang MPI_Sendrecv ug MPI_Allreduce. Ang Load Balancing nagpakita nga ang oras nga gigugol sa MPI_Sendrecv mosaka uban sa numero sa proseso, samtang ang oras para sa MPI_Allreduce mikunhod.
- c. Susiha ang Message Profile I-chart ngadto sa ubos nga tuo nga suok.
Ang color coding sa mga bloke nagpakita nga ang mga mensahe nga nagbiyahe gikan sa mas taas nga ranggo ngadto sa mas ubos nga ranggo nagkinahanglan og proporsyonal nga mas daghang panahon samtang ang mga mensahe nga nagbiyahe gikan sa ubos nga ranggo ngadto sa mas taas nga ranggo nagpadayag sa usa ka huyang nga bisan-katingad nga matang sa sumbanan:
- a. Ablihi ang mga tsart sa samang higayon:
Ang mga resulta sa pagtandi nga pagtuki nagpakita nga walay komplikado nga mga sumbanan sa pagbayloay sa aplikasyon, ang pagbayloay gihimo lamang sa mga silingang proseso. Ang impormasyon kinahanglanon para sa Improve Your Application Performance by Changeing Communications step para ma-optimize ang communication model sa application.
Ilha ang Disbalanced Communications
Tan-awa ang imong aplikasyon ubos sa sulundon nga mga kahimtang ug itandi ang orihinal nga pagsubay file uban sa usa nga gipahiangay aron ihimulag ang mga problema nga interaksyon.
- Paghimo og usa ka idealized file:
- a. Pilia ang Advanced > Idealization o i-klik ang
(Ideyalisasyon) nga buton sa toolbar.
- b. Susiha ang mga parameter sa idealization sa Idealization dialog box (ideal nga pagsubay file ngalan ug sakup sa oras alang sa pagkakabig).
- c. I-klik ang Start para ma-idealize ang imong trace.
- a. Pilia ang Advanced > Idealization o i-klik ang
- Itandi ang orihinal nga pagsubay sa gipahiangay nga pagsubay:
- a. Pilia ang Advanced > Imbalance Diagram o i-klik ang
(Imbalance Diagram) button sa toolbar.
- b. Sa Imbalance Diagram dialog box, i-klik ang Open Another File buton, navigate sa idealized nga pagsubay, ug pilia kini.
- c. Sa window sa Imbalance Diagram, i-klik ang Total Mode button ug pilia ang Breakdown Mode.
- a. Pilia ang Advanced > Imbalance Diagram o i-klik ang
Imong makita nga ang MPI_Sendrecv mao ang pinaka-oras nga function. Ang imbalance nga gibug-aton gipakita sa
kahayag nga kolor ug naglangkob sa mga 10% alang sa MPI_Sendrecv function. Kini ang panahon nga gigugol sa mga proseso sa paghulat sa usag usa.
Pauswaga ang Imong Pagganap sa Aplikasyon pinaagi sa Pag-usab sa Komunikasyon
- Pauswaga ang pasundayag sa aplikasyon sa MPI pinaagi sa pagbag-o sa pag-block sa dili pag-block sa mga komunikasyon.
Sa imong code ilisan ang serial MPI_Sendrcv sa non-blocking communication: MPI_Isend ug MPI_Irecv. Kay example: Orihinal nga snippet sa code:
// pagbaylo sa utlanan
walay sulod nga pagbayloay(para* p, grid* gr){
int i,j;
MPI_Status status_100, status_200, status_300, status_400;
// ipadala ang unang laray
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);
// ipadala ang katapusang laray
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);
Gamita ang Intel Trace Analyzer Comparison view aron itandi ang serialized nga aplikasyon sa giusab
// kopyaha ang wala nga kolum sa tmp arrays
kon(gr->wala != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
// ipadala sa tuo
MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->right, 400, MPI_COMM_WORLD); }
kung(gr->wala!= MPI_PROC_NULL)
{
MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->left, 400, MPI_COMM_WORLD,&status_400); kay(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = left_col[i];
}
}
Gi-update nga snippet sa code
MPI_Request req[7];
// ipadala ang unang laray
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);
Sa higayon nga matul-id, ang usa ka pag-uli sa giusab nga aplikasyon sama sa mosunod nga example: - Gamita ang Intel Trace Analyzer Comparison view aron itandi ang serialized nga aplikasyon sa giusab. Itandi ang duha ka mga pagsubay sa tabang sa Pagtandi View, moadto sa View > Itandi. Ang Pagtandi View susama sa:
Sa Pagtandi View, imong makita nga ang paggamit sa non-blocking nga komunikasyon makatabang sa pagtangtang sa serialization ug pagkunhod sa oras sa komunikasyon sa mga proseso.
NOTA Para sa dugang nga impormasyon bahin sa node-level nga performance sa imong aplikasyon, tan-awa ang dokumentasyon para sa tagsa-tagsa nga mga himan: Intel® VTune™ Profiler Pagtuki sa Kodigo sa MPI ug Pag-analisar sa mga aplikasyon sa Intel® MPI gamit ang Intel® Advisor.
Pagkat-on pa
Susiha ang mosunod nga mga kapanguhaan alang sa dugang impormasyon mahitungod sa Intel Trace Analyzer ug Collector.
Mga Notice ug Disclaimers
- Ang mga teknolohiyang Intel mahimong manginahanglan aktibo nga hardware, software o pag-aktibo sa serbisyo.
- Wala’y produkto o sangkap nga mahimong hingpit nga sigurado.
- Mahimong magkalainlain ang imong mga gasto ug mga sangputanan.
- © Intel Corporation. Ang Intel, ang logo sa Intel, ug uban pang mga marka sa Intel mao ang mga marka sa pamatigayon sa Intel Corporation o mga subsidiary niini. Ang ubang mga ngalan ug mga tatak mahimong maangkon ingon nga kabtangan sa uban.
- Walay lisensya (gipahayag o gipasabot, pinaagi sa estoppel o uban pa) sa bisan unsang mga katungod sa intelektwal nga kabtangan ang gihatag niini nga dokumento.
- Ang mga produkto nga gihulagway mahimong adunay mga depekto sa disenyo o mga sayup nga nailhan nga errata nga mahimong hinungdan sa pagtipas sa produkto gikan sa gipatik nga mga detalye. Ang kasamtangan nga kinaiya nga sayop anaa sa hangyo.
- Gipanghimakak sa Intel ang tanang gipahayag ug gipasabot nga mga garantiya, lakip ang walay limitasyon, ang gipasabot nga mga garantiya sa pagkahimong mamaligya, kaangayan alang sa usa ka partikular nga katuyoan, ug dili paglapas, ingon man ang bisan unsang garantiya nga naggikan sa dagan sa pasundayag, dagan sa pagdumala, o paggamit sa pamatigayon.
Mga Dokumento / Mga Kapanguhaan
![]() |
intel Pagsugod sa Intel Trace Analyzer ug Collector [pdf] Giya sa Gumagamit Pagsugod sa Intel Trace Analyzer ug Collector, Pagsugod sa Intel, Trace Analyzer ug Collector, Collector |