Mimitian nganggo Intel Trace Analyzer and Collector

Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-product

Mimitian nganggo Intel® Trace Analyzer and Collector

Anggo dokumén Mimitian ieu sareng jejak anu tos dikumpulkeun file pikeun ngaliwat analisis kinerja MPI dasar sareng Intel® Trace Analyzer and Collector.
Intel Trace Analyzer and Collector ngabantosan ngajalajah efisiensi panggunaan antar muka pesen (MPI) sareng ngaidentipikasi hotspot komunikasi, bottlenecks sinkronisasi, sareng kasaimbangan beban. Kanggo inpo nu langkung lengkep ihwal produk, tingali Intel Trace Analyzer and Collector product page.

Unduh Intel Trace Analyzer and Collector

  • salaku bagian tina Intel® oneAPI HPC Toolkit
  • salaku alat mandiri

Prasyarat

  • Sateuacan ngajalankeun Intel Trace Analyzer and Collector, pastikeun anjeun parantos masang Intel® MPI Library sareng Intel® oneAPI DPC++/C++ Compiler atanapi Intel® Fortran Compiler.
  • Ieu netepkeun variabel lingkungan anu diperyogikeun pikeun kompiler, Perpustakaan Intel MPI, sareng Intel Trace Analyzer and Collector, sareng anjeun siap ngalacak aplikasi anjeun.
  • Kanggo inpo nu leuwih lengkep, tingali: Intel® oneAPI HPC Toolkit System Requirements.

Ngartos Workflow

  1. Lacak Aplikasi Anjeun
  2. Nganalisis fungsi MPI anu paling aktip
  3. Identipikasi interaksi masalah
  4. Ningkatkeun kinerja aplikasi anjeun ku ngagentos fungsi anu nyababkeun masalah

Lacak Aplikasi MPI anjeun

Ngahasilkeun jejak file pikeun ngumpulkeun log acara pikeun analisis kabiasaan aplikasi di handap.

  1. Nyetél lingkungan pikeun ngaluncurkeun Intel® Trace Analyzer and Collector ku ngajalankeun skrip setvars ti diréktur pamasangan oneAPI
    CATETAN
    Sacara standar, Intel Trace Analyzer and Collector dipasang ka /opt/intel/oneapi/itac for Linux* OS and to Program Files (x86)\Intel\oneAPI\itac\panganyarna pikeun Windows* OS.
    Dina Linux:
    $ sumber /opt/intel/oneapi/setvars.sh
    Dina Windows:
    "C:\Program Files (x86)\Intel\oneAPI\setvars.bat”
  2. Ngajalankeun aplikasi MPI anjeun sarta ngahasilkeun renik kalawan pilihan -trace.
    Dina Linux:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    Dina Windows:
    Kompilkeun aplikasi sareng kumpulkeun jejak.
    Pikeun Intel oneAPI DPC++/C++ Compiler, jalankeun:
    > mpiicc -trace poisson_sendrecv.single.c
    Pikeun Intel Fortran Compiler, jalankeun:
    > mpiifort -trace poisson_sendrecv.single.f
    Mantan ieuample dibangkitkeun renik (stf *) pikeun salakuample poisson_sendrcv.single aplikasi MPI
  3. Buka .stf dihasilkeun file kalawan Intel Trace Analyzer kalawan Intel Trace Analyzer na kolektor.
    Dina Linux:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    Dina Windows:
    traceanalyzer poisson_sendrecv.single.stf

CATETAN
Pikeun tujuan uji, anjeun tiasa ngaunduh jejak anu tos dikumpulkeun file poisson_sendrecv.single.stf pikeun poisson anu digunakeun dina dokumén ieu sareng buka nganggo Intel Trace Analyzer and Collector.
The .stf file muka dina Kaca Ringkesan view, anu ngagambarkeun inpormasi umum ngeunaan kinerja aplikasi anjeun:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-1Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-2CATETAN Kanggo inpo nu langkung lengkep ihwal Intel Trace Analyzer sareng fungsionalitas Kolektor, tingali Diajar langkung seueur.

Nganalisis Fungsi MPI Paling Aktif

Nganalisis hiji kabiasaan aplikasi MPI, manggihan bottlenecks sarta ngaidentipikasi serialization pikeun manggihan cara pikeun ngaronjatkeun kinerja aplikasi.

  1. Tina Kaca Ringkesan, buka Timeline Acara view ku ngaklik Continue> Charts> Event Timeline pikeun analisa jero ngeunaan fungsi MPI luhur.
    Bagan nampilkeun kagiatan prosés individu dina waktosna.
    Karya aplikasi nyaéta iteratif, dimana unggal iterasi diwangun ku bagian komputasi sareng komunikasi MPI.
  2. Identipikasi iterasi tunggal pikeun difokuskeun sareng zum kana éta ku cara nyéred mouse anjeun dina interval waktos anu diperyogikeun:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-3Sidik view nembongkeun bagian dina renik nu Anjeun pilih. Bagan Garis Waktu Acara nunjukkeun kajadian anu aktip salami iterasi anu dipilih.
    • Bar horisontal ngagambarkeun prosés kalayan fungsi anu disebut dina prosés ieu.
    • Garis hideung nunjukkeun pesen anu dikirim antara prosés. Jalur ieu nyambungkeun prosés ngirim sareng nampi.
    • Garis biru ngagambarkeun operasi koléktif, sapertos siaran atanapi ngirangan operasi.
  3. Pindah ka Flat Profile tab (A) pikeun ningali langkung caket kana fungsi anu dijalankeun dina titik waktos anjeun (dipilih dina Timeline Acara.Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-4
  4. Ungroup MPI fungsina pikeun nganalisis kagiatan prosés MPI dina aplikasi anjeun.
    Jang ngalampahkeun ieu, klik-katuhu dina Sadaya Proses> Grup MPI (B) dina Flat Profile tur pilih UngroupMPI. Operasi ieu ngalaan telepon MPI individu.
  5. Nganalisis prosés komunikasi jeung tatangga langsung maranéhanana ngagunakeun MPI_Sendrecv di mimiti iteration nu. Pikeun example:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-5
    • a. Dina sample, bursa data MPI_Sendrecv boga bottleneck a: prosés nu teu tukeur data jeung tatangga hareup na nepi ka bursa jeung saméméhna geus réngsé. The Timelines Acara view mintonkeun bottleneck ieu salaku staircase a.
    • b. The MPI_Allreduce di ahir Iteration resynchronizes sadaya prosés; Éta naha blok ieu boga penampilan staircase sabalikna.
  6. Identipikasi serialization, ngagunakeun Fungsi Profile sareng Pesen Profile views.
    • a. Buka grafik dina waktos anu sami:
      Dina Fungsi Profile bagan, buka tab Balance Beban.
    • Pindah ka menu Bagan pikeun muka Pesen Profile.
    • b. Dina tab Beban Balance, dilegakeun MPI_Sendrecv sareng MPI_Allreduce. Beban Balancing nunjukkeun yén waktos spent dina MPI_Sendrecv naek kalawan jumlah prosés, sedengkeun waktu pikeun MPI_Allreduce nurun.
    • c. Pariksa Pesen Profile Bagan handap ka pojok katuhu handap.
      Pengkodean warna blok nunjukkeun yén pesen anu ngarambat ti pangkat anu langkung luhur ka pangkat anu langkung handap peryogi waktos langkung proporsional sedengkeun pesen anu ngarambat ti pangkat anu langkung handap ka pangkat anu langkung luhur nembongkeun pola anu ganjil anu lemah:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-6

Hasil analisis komparatif nunjukeun yen teu aya pola bursa kompléks dina aplikasi, bursa dilaksanakeun ukur jeung prosés tatangga. Inpormasi bakal penting pikeun Ningkatkeun Kinerja Aplikasi anjeun ku Ngarobih léngkah Komunikasi pikeun ngaoptimalkeun modél komunikasi aplikasi.

Identipikasi Komunikasi teu saimbang

Tonton aplikasi anjeun dina kaayaan idéal sareng bandingkeun jejak asli file kalawan idéal pikeun ngasingkeun interaksi masalah.

  1. Jieun hiji idealized file:
    • a. Pilih Advanced > Idealization atawa klikMimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-7 (Idéalization) tombol toolbar.
    • b. Pariksa parameter idealization dina kotak dialog Idealization (ideal trace file ngaran jeung rentang waktu keur konversi).
    • c. Klik Mimitian pikeun idealize renik Anjeun.
  2. Bandingkeun renik aslina jeung renik idealized:
    • a. Pilih Advanced > Imbalance Diagram atawa klik dina Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-8(Imbalance Diagram) tombol toolbar.
    • b. Dina kotak dialog Imbalance Diagram, klik Open Other File tombol, arahkeun ka ngambah idealized, tur pilih eta.
    • c. Dina jandela Imbalance Diagram, klik tombol Total Mode tur pilih Breakdown Mode.

Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-9

Anjeun tiasa ningali yén MPI_Sendrecv mangrupikeun fungsi anu paling nyéépkeun waktos. Beurat teu saimbangna dipintonkeun dina
warna caang jeung ngandung ngeunaan 10% pikeun fungsi MPI_Sendrecv. Ieu waktos prosés méakkeun ngantosan saling.

Ningkatkeun Kinerja Aplikasi anjeun ku Ngarobih Komunikasi

  1. Ningkatkeun kinerja aplikasi MPI ku cara ngarobah blocking kana komunikasi non-blocking.
    Dina kode anjeun ngaganti MPI_Sendrcv serial kalayan komunikasi non-blocking: MPI_Isend na MPI_Irecv. Pikeun example: snippet kode aslina:
    // bursa wates
    bursa batal(para* p, grid* gr){
    int i, j;
    MPI_Status status_100, status_200, status_300, status_400;
    // ngirim ka handap baris kahiji
    MPI_Send (gr-> x_new [1], gr-> lcol + 2, MPI_DOUBLE, gr-> handap, 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);
    // ngirim nepi baris panungtungan
    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-> handap, 200, MPI_COMM_WORLD, & status_200);
    Paké Intel Trace Analyzer Babandingan view pikeun ngabandingkeun aplikasi serialized kalawan dirévisi
    // nyalin kolom kénca ka tmp arrays
    lamun (gr-> kénca != MPI_PROC_NULL){
    gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
    // ngirim katuhu
    MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->right, 400, MPI_COMM_WORLD); }
    lamun (gr-> kénca! = MPI_PROC_NULL)
    {
    MPI_Recv (left_col, gr-> lrow + 2, MPI_DOUBLE, gr-> kénca, 400, MPI_COMM_WORLD, & status_400); pikeun(i=0; i<gr->lrow+2; i++
    {
    gr->x_new[i][0] = left_col[i];
    }
    }
    snippet kode diropéa
    MPI_Request req [7];
    // ngirim ka handap baris kahiji
    MPI_Isend (gr-> x_new [1], gr-> lcol + 2, MPI_DOUBLE, gr-> handap, 100, MPI_COMM_WORLD, & req [0]);
    MPI_Irecv (gr-> x_new [gr-> lrow + 1], gr-> lcol + 2, MPI_DOUBLE, gr-> ka luhur, 100, MPI_COMM_WORLD, & req [1]);
    …..
    MPI_Waitall(7, req, MPI_STATUSES_IGNORE);
    Sakali dilereskeun, iterasi tunggal tina aplikasi nu dirévisi bakal kasampak kawas ex di handap ieuample:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-10
  2. Paké Intel Trace Analyzer Babandingan view pikeun ngabandingkeun aplikasi serialized jeung hiji dirévisi. Bandingkeun dua ngambah kalayan bantuan Babandingan View, nuju View > Bandingkeun. Babandingan View kasampak sarupa:Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-11Dina Babandingan View, Anjeun bisa nempo yén ngagunakeun komunikasi non-blocking mantuan miceun serialization jeung ngurangan waktu komunikasi prosés.
    CATETAN Kanggo inpo nu langkung lengkep ihwal kinerja tingkat titik aplikasi anjeun, tingali dokuméntasi pikeun alat masing-masing: Intel® VTune™ Profiler Analisis Kode MPI jeung nganalisis aplikasi Intel® MPI ngagunakeun Intel® panaséhat.

Diajar deui

Jelajah sumber daya di handap ieu kanggo inpormasi anu langkung lengkep ihwal Intel Trace Analyzer and Collector.Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-12Mimitian-kalayan-Intel-Trace-Analyzer-and-Collector-fig-13

Bewara sareng Bantahan

  • Téknologi Intel tiasa ngabutuhkeun perkakas hardware, software atanapi aktivasina jasa.
  • Henteu aya produk atanapi komponén anu leres-leres aman.
  • Biaya sareng hasil anjeun tiasa rupa-rupa.
  • © Intel Corporation. Intel, logo Intel, sareng merek Intel sanés mangrupikeun mérek dagang Intel Corporation atanapi anak perusahaanna. Ngaran sareng merek sanésna tiasa diklaim salaku hak milik batur.
  • Henteu aya lisénsi (nyata atanapi tersirat, ku estoppel atanapi sanés) kana hak cipta intelektual anu dipasihkeun ku dokumén ieu.
  • Produk anu dijelaskeun tiasa ngandung cacad desain atanapi kasalahan anu katelah errata anu tiasa nyababkeun produk nyimpang tina spésifikasi anu diterbitkeun. errata dicirikeun ayeuna sadia on pamundut.
  • Intel ngabatalkeun sadaya jaminan anu nyata sareng tersirat, kalebet tanpa watesan, jaminan anu tersirat ngeunaan kamampuan dagang, kabugaran pikeun tujuan anu khusus, sareng henteu ngalanggar, ogé jaminan naon waé anu timbul tina pagelaran, jalanna transaksi, atanapi panggunaan dina perdagangan.

Dokumén / Sumberdaya

intel Mimitian sareng Intel Trace Analyzer and Collector [pdf] Pituduh pamaké
Mimitian ku Intel Trace Analyzer and Collector, Start with Intel, Trace Analyzer and Collector, Collector

Rujukan

Ninggalkeun komentar

alamat surélék anjeun moal diterbitkeun. Widang diperlukeun ditandaan *