Bermula dengan Intel Trace Analyzer dan Collector

Bermula-dengan-Intel-Trace-Analyzer-and-Collector-product

Bermula dengan Intel® Trace Analyzer and Collector

Gunakan dokumen Bermula ini dan jejak yang telah dikumpul file untuk menjalankan analisis prestasi MPI asas dengan Penganalisis dan Pemungut Intel® Trace.
Intel Trace Analyzer and Collector membantu meneroka kecekapan penggunaan antara muka menghantar mesej (MPI) dan mengenal pasti titik liputan komunikasi, kesesakan penyegerakan dan pengimbangan beban. Untuk maklumat lanjut tentang produk, lihat halaman produk Intel Trace Analyzer dan Collector.

Muat turun Intel Trace Analyzer and Collector

  • sebagai sebahagian daripada Intel® oneAPI HPC Toolkit
  • sebagai alat kendiri

Prasyarat

  • Sebelum menjalankan Intel Trace Analyzer and Collector, pastikan anda telah memasang Intel® MPI Library dan Intel® oneAPI DPC++/C++ Compiler atau Intel® Fortran Compiler.
  • Ini menetapkan pembolehubah persekitaran yang diperlukan untuk penyusun, Intel MPI Library dan Intel Trace Analyzer and Collector, dan anda sudah bersedia untuk mengesan aplikasi anda.
  • Untuk maklumat lanjut, lihat: Keperluan Sistem Kit Alat HPC Intel® oneAPI.

Fahami Aliran Kerja

  1. Jejaki Permohonan Anda
  2. Menganalisis fungsi MPI yang paling aktif
  3. Kenal pasti interaksi yang bermasalah
  4. Tingkatkan prestasi aplikasi anda dengan menggantikan fungsi penyebab masalah

Jejak Aplikasi MPI Anda

Hasilkan jejak file untuk mengumpul log peristiwa untuk analisis tingkah laku aplikasi berikut.

  1. Sediakan persekitaran untuk melancarkan Intel® Trace Analyzer and Collector dengan menjalankan skrip setvars daripada pengarah pemasangan oneAPI
    NOTA
    Secara lalai, Intel Trace Analyzer dan Collector dipasang pada /opt/intel/oneapi/itac untuk OS Linux* dan pada Program Files (x86)\Intel\oneAPI\itac\terbaru untuk Windows* OS.
    Di Linux:
    $ sumber /opt/intel/oneapi/setvars.sh
    Pada Windows:
    “C:\Program Files (x86)\Intel\oneAPI\setvars.bat”
  2. Jalankan aplikasi MPI anda dan jana jejak dengan pilihan -trace.
    Di Linux:
    $ mpirun -jejak -n 4 ./poisson_sendrecv.single
    Pada Windows:
    Susun apl dan kumpulkan jejak.
    Untuk Pengkompil Intel oneAPI DPC++/C++, jalankan:
    > mpiicc -trace poisson_sendrecv.single.c
    Untuk Intel Fortran Compiler, jalankan:
    > mpiifort -trace poisson_sendrecv.single.f
    bekas iniample menjana jejak (stf*) untuk sebagaiample poisson_sendrcv.aplikasi MPI tunggal
  3. Buka .stf yang dijana file dengan Intel Trace Analyzer dengan Intel Trace Analyzer dan Collector.
    Di Linux:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    Pada Windows:
    traceanalyzer poisson_sendrecv.single.stf

NOTA
Untuk tujuan ujian, anda boleh memuat turun jejak yang telah dikumpul file poisson_sendrecv.single.stf untuk poisson yang digunakan dalam dokumen ini dan bukanya dengan Intel Trace Analyzer and Collector.
.stf file dibuka dalam Halaman Ringkasan view, yang mewakili maklumat umum tentang prestasi aplikasi anda:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-1Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-2NOTA Untuk mendapatkan maklumat lanjut tentang fungsi Intel Trace Analyzer dan Collector, lihat Ketahui Lebih Lanjut.

Analisis Fungsi MPI Paling Aktif

Menganalisis gelagat aplikasi MPI, mencari kesesakan dan mengenal pasti siri untuk mencari cara untuk meningkatkan prestasi aplikasi.

  1. Dari Halaman Ringkasan buka Garis Masa Acara view dengan mengklik Teruskan > Carta > Garis Masa Acara untuk analisis mendalam tentang fungsi MPI teratas.
    Carta memaparkan aktiviti proses individu dari semasa ke semasa.
    Kerja aplikasi adalah berulang, di mana setiap lelaran terdiri daripada bahagian pengiraan dan komunikasi MPI.
  2. Kenal pasti lelaran tunggal untuk difokuskan dan zum ke dalamnya dengan menyeret tetikus anda pada selang masa yang diperlukan:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-3Jejak itu view menunjukkan bahagian dalam surih yang anda pilih. Carta Garis Masa Acara menunjukkan peristiwa yang aktif semasa lelaran yang dipilih.
    • Bar mendatar mewakili proses dengan fungsi yang dipanggil dalam proses ini.
    • Garis hitam menunjukkan mesej yang dihantar antara proses. Talian ini menghubungkan proses penghantaran dan penerimaan.
    • Garis biru mewakili operasi kolektif, seperti penyiaran atau pengurangan operasi.
  3. Tukar kepada Flat Profile tab (A) untuk melihat dengan lebih dekat fungsi yang dilaksanakan dalam titik masa yang anda (dipilih dalam Garis Masa Acara.Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-4
  4. Ungroup MPI berfungsi untuk menganalisis aktiviti proses MPI dalam aplikasi anda.
    Untuk melakukan ini, klik kanan Semua Proses > Kumpulan MPI ( B) dalam Flat Profile dan pilih UngroupMPI. Operasi ini mendedahkan panggilan MPI individu.
  5. Analisis proses berkomunikasi dengan jiran langsung mereka menggunakan MPI_Sendrecv pada permulaan lelaran. Untuk example:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-5
    • a. Dalam sampOleh itu, pertukaran data MPI_Sendrecv mempunyai kesesakan: proses tidak menukar data dengan jiran seterusnya sehingga pertukaran dengan yang sebelumnya selesai. Garis Masa Acara view memaparkan kesesakan ini sebagai tangga.
    • b. MPI_Allreduce pada penghujung lelaran menyegerakkan semula semua proses; itulah sebabnya blok ini mempunyai rupa tangga terbalik.
  6. Kenal pasti siri, menggunakan Function Profile dan Message Profile views.
    • a. Buka carta pada masa yang sama:
      Dalam Fungsi Profile carta, buka tab Imbangan Muatan.
    • Pergi ke menu Carta untuk membuka Message Profile.
    • b. Dalam tab Imbangan Muatan, kembangkan MPI_Sendrecv dan MPI_Allreduce. Pengimbangan Beban menunjukkan bahawa masa yang dibelanjakan dalam MPI_Sendrecv meningkat dengan nombor proses, manakala masa untuk MPI_Allreduce berkurangan.
    • c. Periksa Message Profile Carta ke bawah ke sudut kanan bawah.
      Pengekodan warna blok menunjukkan bahawa mesej yang bergerak dari kedudukan yang lebih tinggi ke kedudukan yang lebih rendah memerlukan lebih banyak masa secara berkadar manakala mesej yang bergerak dari kedudukan yang lebih rendah ke kedudukan yang lebih tinggi mendedahkan jenis corak yang ganjil yang lemah:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-6

Hasil analisis perbandingan menunjukkan bahawa tidak ada corak pertukaran yang kompleks dalam aplikasi, pertukaran hanya dilakukan dengan proses jiran. Maklumat tersebut akan menjadi penting untuk Meningkatkan Prestasi Aplikasi Anda dengan Mengubah langkah Komunikasi untuk mengoptimumkan model komunikasi aplikasi.

Kenal pasti Komunikasi Tidak Seimbang

Tonton permohonan anda dalam keadaan yang ideal dan bandingkan jejak asal file dengan yang ideal untuk mengasingkan interaksi yang bermasalah.

  1. Buat yang ideal file:
    • a. Pilih Lanjutan > Idealisasi atau klik butangBermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-7 (Idealisasi) butang bar alat.
    • b. Semak parameter idealisasi dalam kotak dialog Idealisasi (jejak ideal file nama dan julat masa untuk penukaran).
    • c. Klik Mula untuk mengoptimumkan jejak anda.
  2. Bandingkan jejak asal dengan jejak ideal:
    • a. Pilih Lanjutan > Rajah Ketidakseimbangan atau klik butang Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-8(Rajah Ketidakseimbangan) butang bar alat.
    • b. Dalam kotak dialog Rajah Ketidakseimbangan, klik Buka Satu Lagi File butang, navigasi ke jejak yang ideal, dan pilihnya.
    • c. Dalam tetingkap Rajah Ketidakseimbangan, klik butang Mod Jumlah dan pilih Mod Pecahan.

Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-9

Anda boleh melihat bahawa MPI_Sendrecv ialah fungsi yang paling memakan masa. Berat ketidakseimbangan dipaparkan dalam
warna terang dan mengandungi kira-kira 10% untuk fungsi MPI_Sendrecv. Ini adalah masa yang dihabiskan oleh proses menunggu antara satu sama lain.

Tingkatkan Prestasi Aplikasi Anda dengan Menukar Komunikasi

  1. Meningkatkan prestasi aplikasi MPI dengan menukar komunikasi menyekat kepada tidak menyekat.
    Dalam kod anda gantikan MPI_Sendrcv bersiri dengan komunikasi tidak menyekat: MPI_Isend dan MPI_Irecv. Untuk example: Coretan kod asal:
    // pertukaran sempadan
    pertukaran kosong(para* p, grid* gr){
    int i, j;
    MPI_Status status_100, status_200, status_300, status_400;
    // hantar ke bawah baris pertama
    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);
    // hantar baris terakhir
    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);
    Gunakan Perbandingan Intel Trace Analyzer view untuk membandingkan aplikasi bersiri dengan yang disemak
    // salin lajur kiri ke tatasusunan tmp
    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];
    // hantar ke kanan
    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->left, 400, MPI_COMM_WORLD,&status_400); untuk(i=0; i< gr->lrow+2; i++
    {
    gr->x_new[i][0] = left_col[i];
    }
    }
    Coretan kod dikemas kini
    Permintaan_MPI[7];
    // hantar ke bawah baris pertama
    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);
    Setelah diperbetulkan, lelaran tunggal aplikasi yang disemak akan kelihatan seperti contoh berikutample:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-10
  2. Gunakan Perbandingan Intel Trace Analyzer view untuk membandingkan aplikasi bersiri dengan aplikasi yang disemak. Bandingkan dua jejak dengan bantuan Perbandingan View, pergi ke View > Bandingkan. Perbandingan View kelihatan serupa dengan:Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-11Dalam Perbandingan View, anda dapat melihat bahawa menggunakan komunikasi tidak menyekat membantu mengalih keluar siri dan mengurangkan masa komunikasi proses.
    NOTA Untuk mendapatkan maklumat lanjut tentang prestasi peringkat nod aplikasi anda, lihat dokumentasi untuk alatan masing-masing: Intel® VTune™ Profiler Analisis Kod MPI dan Menganalisis aplikasi Intel® MPI menggunakan Intel® Advisor.

Ketahui Lebih Lanjut

Terokai sumber berikut untuk mendapatkan maklumat lanjut tentang Intel Trace Analyzer dan Collector.Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-12Bermula-dengan-Intel-Trace-Analyzer-and-Collector-fig-13

Notis dan Penafian

  • Teknologi Intel mungkin memerlukan pengaktifan perkakasan, perisian atau perkhidmatan yang diaktifkan.
  • Tiada produk atau komponen boleh benar-benar selamat.
  • Kos dan hasil anda mungkin berbeza-beza.
  • © Intel Corporation. Intel, logo Intel dan tanda Intel lain ialah tanda dagangan Intel Corporation atau anak syarikatnya. Nama dan jenama lain boleh dituntut sebagai hak milik orang lain.
  • Tiada lesen (ternyata atau tersirat, melalui estoppel atau sebaliknya) kepada mana-mana hak harta intelek diberikan oleh dokumen ini.
  • Produk yang diterangkan mungkin mengandungi kecacatan reka bentuk atau ralat yang dikenali sebagai errata yang boleh menyebabkan produk menyimpang daripada spesifikasi yang diterbitkan. Kesalahan berciri semasa tersedia atas permintaan.
  • Intel menafikan semua waranti nyata dan tersirat, termasuk tanpa had, waranti tersirat kebolehdagangan, kesesuaian untuk tujuan tertentu dan bukan pelanggaran, serta sebarang waranti yang timbul daripada perjalanan prestasi, perjalanan urusan atau penggunaan dalam perdagangan.

Dokumen / Sumber

intel Bermula dengan Intel Trace Analyzer and Collector [pdf] Panduan Pengguna
Bermula dengan Intel Trace Analyzer and Collector, Bermula dengan Intel, Trace Analyzer and Collector, Collector

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *