Pagsugod sa Intel Trace Analyzer ug Collector

Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-product

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

  1. Pagsubay sa Imong Aplikasyon
  2. Analisaha ang labing aktibo nga mga gimbuhaton sa MPI
  3. Pag-ila sa mga problema nga interaksyon
  4. 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.

  1. 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”
  2. 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
  3. 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:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-1Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-2NOTA 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.

  1. 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.
  2. 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:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-3Ang 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.
  3. 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.Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-4
  4. 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.
  5. Analisaha ang mga proseso sa pagpakigsulti sa ilang direktang mga silingan gamit ang MPI_Sendrecv sa pagsugod sa pag-uli. Kay example:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-5
    • 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.
  6. 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:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-6

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.

  1. Paghimo og usa ka idealized file:
    • a. Pilia ang Advanced > Idealization o i-klik angPagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-7 (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.
  2. Itandi ang orihinal nga pagsubay sa gipahiangay nga pagsubay:
    • a. Pilia ang Advanced > Imbalance Diagram o i-klik ang Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-8(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.

Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-9

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

  1. 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:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-10
  2. 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:Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-11Sa 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.Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-12Pagsugod-sa-Intel-Trace-Analyzer-ug-Collector-fig-13

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

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *