Miwiti karo Intel Trace Analyzer lan Collector

Miwiti-karo-Intel-Trace-Analyzer-and-Collector-product

Miwiti Intel® Trace Analyzer and Collector

Gunakake dokumen Miwiti iki lan jejak sing wis diklumpukake file kanggo lumaku liwat analisis kinerja MPI dhasar karo Intel® Trace Analyzer lan Collector.
Intel Trace Analyzer and Collector mbantu njelajah efisiensi panggunaan antarmuka pesen (MPI) lan ngenali hotspot komunikasi, kemacetan sinkronisasi, lan imbangan muatan. Kanggo informasi luwih lengkap babagan produk, waca Intel Trace Analyzer lan kaca produk Collector.

Unduh Intel Trace Analyzer and Collector

  • minangka bagéan saka Intel® oneAPI HPC Toolkit
  • minangka alat mandiri

Prasyarat

  • Sadurunge mbukak Intel Trace Analyzer and Collector, priksa manawa sampeyan wis nginstal Intel® MPI Library lan Intel® oneAPI DPC++/C++ Compiler utawa Intel® Fortran Compiler paling anyar.
  • Iki nyetel variabel lingkungan sing dibutuhake kanggo kompiler, Intel MPI Library, lan Intel Trace Analyzer and Collector, lan sampeyan siyap kanggo nglacak aplikasi sampeyan.
  • Kanggo informasi luwih lengkap, waca: Intel® oneAPI HPC Toolkit System Requirements.

Ngerti Alur Kerja

  1. Lacak Aplikasi Sampeyan
  2. Analisis fungsi MPI sing paling aktif
  3. Ngenali interaksi masalah
  4. Ngapikake kinerja aplikasi kanthi ngganti fungsi sing nyebabake masalah

Lacak Aplikasi MPI Panjenengan

Nggawe tilak file kanggo ngumpulake log acara kanggo analisis prilaku aplikasi ing ngisor iki.

  1. Nyiyapake lingkungan kanggo ngluncurake Intel® Trace Analyzer and Collector kanthi mbukak skrip setvars saka direktur instalasi oneAPI
    CATETAN
    Kanthi gawan, Intel Trace Analyzer and Collector diinstal ing /opt/intel/oneapi/itac kanggo Linux* OS lan kanggo Program Files (x86)\Intel\oneAPI\itac\latest kanggo Windows* OS.
    Ing Linux:
    $ sumber /opt/intel/oneapi/setvars.sh
    Ing Windows:
    "C:\Program Files (x86)\Intel\oneAPI\setvars.bat”
  2. Mbukak aplikasi MPI lan generate tilak karo pilihan -trace.
    Ing Linux:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    Ing Windows:
    Kompilasi app lan ngumpulake jejak.
    Kanggo Intel oneAPI DPC++/C++ Compiler, jalanake:
    > mpiicc -trace poisson_sendrecv.single.c
    Kanggo Intel Fortran Compiler, jalanake:
    > mpiifort -trace poisson_sendrecv.single.f
    Mantan ikiample ngasilake tilak (stf *) kanggo minangkaample poisson_sendrcv.single aplikasi MPI
  3. Bukak .stf sing digawe file karo Intel Trace Analyzer karo Intel Trace Analyzer lan Collector.
    Ing Linux:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    Ing Windows:
    traceanalyzer poisson_sendrecv.single.stf

CATETAN
Kanggo tujuan testing, sampeyan bisa ngundhuh jejak sing wis diklumpukake file poisson_sendrecv.single.stf kanggo poisson digunakake ing document iki lan mbukak karo Intel Trace Analyzer lan Collector.
Ing .stf file mbukak ing Kaca Ringkesan view, sing nggambarake informasi umum babagan kinerja aplikasi sampeyan:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-1Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-2CATETAN Kanggo informasi luwih lengkap babagan Intel Trace Analyzer lan fungsi Collector, waca Sinau luwih lengkap.

Analisis Fungsi MPI Paling Aktif

Analisis prilaku aplikasi MPI, golek bottlenecks lan ngenali serialization kanggo nemokake cara kanggo nambah kinerja aplikasi.

  1. Saka Kaca Ringkesan mbukak Timeline Acara view kanthi ngeklik Terusake > Bagan > Acara Timeline kanggo analisis jero saka fungsi MPI ndhuwur.
    Bagan nampilake aktivitas proses individu saka wektu.
    Karya aplikasi iku iteratif, ing ngendi saben iterasi kasusun saka bagean komputasi lan komunikasi MPI.
  2. Ngenali iterasi siji kanggo fokus lan nggedhekake kanthi nyeret mouse ing interval wektu sing dibutuhake:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-3Tilas view nuduhake bagean ing tilak sing sampeyan pilih. Bagan Timeline Acara nuduhake acara sing aktif sajrone iterasi sing dipilih.
    • Bar horisontal nggambarake proses kanthi fungsi sing disebut ing proses kasebut.
    • Garis ireng nuduhake pesen sing dikirim ing antarane proses. Jalur kasebut nyambungake proses ngirim lan nampa.
    • Garis biru nggambarake operasi kolektif, kayata siaran utawa nyuda operasi.
  3. Ngalih menyang Flat Profile tab (A) kanggo ndeleng kanthi luwih rinci babagan fungsi sing ditindakake ing titik wektu sampeyan ( dipilih ing Timeline Acara.Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-4
  4. Ungroup MPI fungsi kanggo nganalisa kegiatan proses MPI ing aplikasi sampeyan.
    Kanggo nindakake iki, klik-tengen Kabeh Proses> Group MPI (B) ing Flat Profile lan pilih UngroupMPI. Operasi iki mbukak telpon MPI individu.
  5. Analisis proses komunikasi karo tanggane langsung nggunakake MPI_Sendrecv ing wiwitan pengulangan. Kanggo example:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-5
    • a. Ing sample, ijol-ijolan data MPI_Sendrecv duwe bottleneck: proses ora ngganti data karo pepadhamu sabanjure nganti ijol-ijolan karo sadurunge rampung. Jadwal Acara view nampilake bottleneck iki minangka tangga.
    • b. MPI_Allreduce ing mburi pengulangan resynchronizes kabeh pangolahan; pramila pemblokiran iki nduweni tampilan tangga terbalik.
  6. Ngenali serialization, nggunakake Fungsi Profile lan Pesen Profile views.
    • a. Bukak denah ing wektu sing padha:
      Ing Fungsi Profile grafik, bukak tab Load Balance.
    • Pindhah menyang menu Charts kanggo mbukak Message Profile.
    • b. Ing tab Load Balance, nggedhekake MPI_Sendrecv lan MPI_Allreduce. Load Balancing nuduhake yen wektu ngginakaken ing MPI_Sendrecv mundhak karo nomer proses, nalika wektu kanggo MPI_Allreduce sudo.
    • c. Priksa Pro Pesenfile Bagan mudhun menyang pojok tengen ngisor.
      Kode warna blok kasebut nuduhake yen pesen sing lelungan saka pangkat sing luwih dhuwur menyang peringkat sing luwih murah mbutuhake wektu sing luwih proporsional nalika pesen sing lelungan saka peringkat sing luwih murah menyang peringkat sing luwih dhuwur nuduhake pola sing aneh-aneh:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-6

Asil analisis komparatif nuduhake yen ora ana pola ijol-ijolan sing rumit ing aplikasi kasebut, ijol-ijolan mung ditindakake kanthi proses tetanggan. Informasi kasebut bakal penting kanggo Ngapikake Kinerja Aplikasi kanthi Ngganti Langkah Komunikasi kanggo ngoptimalake model komunikasi aplikasi kasebut.

Ngenali Komunikasi sing ora seimbang

Nonton aplikasi sampeyan ing kahanan sing cocog lan mbandhingake jejak asli file karo sing ideal kanggo ngisolasi interaksi masalah.

  1. Nggawe idealized file:
    • a. Pilih Advanced > Idealization utawa klik ingMiwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-7 (Idealisasi) tombol toolbar.
    • b. Priksa paramèter idealisasi ing kothak dialog Idealization (ideal trace file jeneng lan rentang wektu kanggo konversi).
    • c. Klik Mulai kanggo ngidentifikasi jejak sampeyan.
  2. Bandingake jejak asli karo jejak ideal:
    • a. Pilih Advanced > Imbalance Diagram utawa klik ing Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-8(Imbalance Diagram) tombol toolbar.
    • b. Ing kothak dialog Imbalance Diagram, klik Open Other File tombol, navigasi menyang tilak idealized, lan pilih.
    • c. Ing jendhela Imbalance Diagram, klik tombol Total Mode banjur pilih Breakdown Mode.

Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-9

Sampeyan bisa ndeleng manawa MPI_Sendrecv minangka fungsi sing paling akeh wektu. Bobot ora seimbang ditampilake ing
werna cahya lan ngemot babagan 10% kanggo fungsi MPI_Sendrecv. Iki wektu proses ngenteni saben liyane.

Ngapikake Kinerja Aplikasi kanthi Ngganti Komunikasi

  1. Ningkatake kinerja aplikasi MPI kanthi ngganti pamblokiran dadi komunikasi non-pamblokiran.
    Ing kode sampeyan ngganti MPI_Sendrcv serial karo komunikasi non-blocking: MPI_Isend lan MPI_Irecv. Kanggo example: Cuplikan kode asli:
    // ijol-ijolan wates
    pertukaran void(para* p, grid* gr){
    ing i, j;
    MPI_Status status_100, status_200, status_300, status_400;
    // ngirim mudhun baris pisanan
    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);
    // ngirim munggah baris pungkasan
    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->mudhun, 200, MPI_COMM_WORLD, & status_200);
    Gunakake Intel Trace Analyzer Comparison view kanggo mbandhingake aplikasi serialized karo revisi
    // nyalin kolom kiwa menyang tmp arrays
    if(gr->left != MPI_PROC_NULL){
    gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
    // kirim tengen
    MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->right, 400, MPI_COMM_WORLD); }
    if(gr->left!= MPI_PROC_NULL)
    {
    MPI_Recv (left_col, gr-> lrow+2, MPI_DOUBLE, gr-> kiwa, 400, MPI_COMM_WORLD, & status_400); for(i=0; i< gr->lrow+2; i++
    {
    gr->x_new[i][0] = left_col[i];
    }
    }
    Cuplikan kode sing dianyari
    MPI_Request request[7];
    // ngirim mudhun baris pisanan
    MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->mudhun, 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);
    Sawise didandani, pengulangan siji saka aplikasi sing diowahi bakal katon kaya ing ngisor ikiample:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-10
  2. Gunakake Intel Trace Analyzer Comparison view kanggo mbandhingaké aplikasi serialized karo siji diubah. Mbandhingaké loro ngambah karo bantuan saka Comparison View, arep View > Mbandhingake. The Comparison View katon padha karo:Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-11Ing Comparison View, sampeyan bisa ndeleng manawa nggunakake komunikasi non-blocking mbantu mbusak serialisasi lan nyuda wektu komunikasi proses.
    CATETAN Kanggo informasi luwih lengkap babagan kinerja tingkat simpul aplikasi sampeyan, deleng dokumentasi kanggo piranti kasebut: Intel® VTune™ Profiler Analisis Kode MPI lan nganalisa aplikasi Intel® MPI nggunakake Intel® Advisor.

Sinau luwih lengkap

Jelajahi sumber daya ing ngisor iki kanggo informasi luwih lengkap babagan Intel Trace Analyzer lan Collector.Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-12Miwiti-nganggo-Intel-Trace-Analyzer-and-Collector-fig-13

Kabar lan Penafian

  • Teknologi Intel bisa uga mbutuhake hardware, software, utawa aktifitas layanan.
  • Ora ana produk utawa komponen sing bisa pancen aman.
  • Biaya lan asil sampeyan bisa beda-beda.
  • © Intel Corporation. Intel, logo Intel, lan merek Intel liyane minangka merek dagang saka Intel Corporation utawa anak perusahaan. Jeneng lan merek liyane bisa uga diklaim minangka properti wong liya.
  • Ora ana lisensi (nyata utawa diwenehake, kanthi estoppel utawa liya-liyane) kanggo hak properti intelektual sing diwenehake dening dokumen iki.
  • Produk sing diterangake bisa ngemot cacat desain utawa kesalahan sing dikenal minangka errata sing bisa nyebabake produk kasebut nyimpang saka spesifikasi sing diterbitake. errata ditondoi saiki kasedhiya ing request.
  • Intel mbantah kabeh jaminan sing nyata lan tersirat, kalebu tanpa watesan, jaminan sing bisa didol, kesesuaian kanggo tujuan tartamtu, lan ora nglanggar, uga jaminan apa wae sing kedadeyan saka kinerja, transaksi, utawa panggunaan ing perdagangan.

Dokumen / Sumber Daya

intel Miwiti karo Intel Trace Analyzer lan Collector [pdf] Pandhuan pangguna
Miwiti Intel Trace Analyzer and Collector, Miwiti Intel, Trace Analyzer and Collector, Collector

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *