Intel Trace Analyzer va Collector bilan ishlashni boshlang
Intel® Trace Analyzer va Collector bilan ishlashni boshlang
Ushbu "Ishga tushirish" hujjati va oldindan to'plangan izdan foydalaning file Intel® Trace Analyzer va Collector yordamida asosiy MPI ish faoliyatini tahlil qilish.
Intel Trace Analyzer va Collector xabar uzatish interfeysi (MPI) foydalanish samaradorligini o'rganishga yordam beradi va aloqa faol nuqtalarini, sinxronizatsiya muammolarini va yuk balansini aniqlashga yordam beradi. Mahsulot haqida qoʻshimcha maʼlumot olish uchun Intel Trace Analyzer va Collector mahsulot sahifasiga qarang.
Intel Trace Analyzer va Collector-ni yuklab oling
- Intel® oneAPI HPC Toolkitning bir qismi sifatida
- mustaqil vosita sifatida
Old shartlar
- Intel Trace Analyzer va Collector-ni ishga tushirishdan oldin, eng so'nggi Intel® MPI Library va Intel® oneAPI DPC++/C++ Compiler yoki Intel® Fortran Compiler-ni o'rnatganingizga ishonch hosil qiling.
- Bu kompilyatorlar, Intel MPI kutubxonasi va Intel Trace Analyzer va Collector uchun kerakli muhit o'zgaruvchilarini o'rnatadi va siz ilovalaringizni kuzatishga tayyorsiz.
- Qo'shimcha ma'lumot olish uchun qarang: Intel® oneAPI HPC Toolkit tizim talablari.
Ish jarayonini tushunish
- Arizangizni kuzatib boring
- Eng faol MPI funktsiyalarini tahlil qiling
- Muammoli o'zaro ta'sirlarni aniqlang
- Muammoni keltirib chiqaradigan funktsiyani almashtirish orqali dastur ish faoliyatini yaxshilang
MPI ilovangizni kuzatib boring
Iz hosil qiling file quyidagi ilova xatti-harakatlarini tahlil qilish uchun voqea jurnallarini to'plash.
- oneAPI o'rnatish direktoridan setvars skriptini ishga tushirish orqali Intel® Trace Analyzer va Collector-ni ishga tushirish uchun muhitni sozlang.
ESLATMA
Odatiy bo'lib, Intel Trace Analyzer va Collector Linux* OS uchun /opt/intel/oneapi/itac va Dasturga o'rnatiladi. FileWindows* OS uchun s (x86)\Intel\oneAPI\itac\eng yangi.
Linuxda:
$ manba /opt/intel/oneapi/setvars.sh
Windowsda:
“C:\Dastur Files (x86)\Intel\oneAPI\setvars.bat" - MPI ilovangizni ishga tushiring va -trace opsiyasi bilan iz yarating.
Linuxda:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
Windowsda:
Ilovani kompilyatsiya qiling va izni to'plang.
Intel oneAPI DPC++/C++ kompilyatori uchun quyidagilarni bajaring:
> mpiicc -trace poisson_sendrecv.single.c
Intel Fortran kompilyatori uchun quyidagilarni bajaring:
> mpiifort -trace poisson_sendrecv.single.f
Bu sobiqample as uchun iz (stf*) hosil qiladiample poisson_sendrcv.single MPI ilovasi - Yaratilgan .stf ni oching file Intel Trace Analyzer va Intel Trace Analyzer va Collector bilan.
Linuxda:
$ traceanalyzer ./ poisson_sendrecv.single.stf
Windowsda:
traceanalyzer poisson_sendrecv.single.stf
ESLATMA
Sinov maqsadida siz oldindan to'plangan izni yuklab olishingiz mumkin file Ushbu hujjatda ishlatiladigan poisson uchun poisson_sendrecv.single.stf faylini kiriting va uni Intel Trace Analyzer va Collector bilan oching.
The .stf file Xulosa sahifasida ochiladi view, bu ilovangizning ishlashi haqida umumiy ma'lumotni ifodalaydi:ESLATMA Intel Trace Analyzer va Collector funksiyalari haqida ko'proq ma'lumot olish uchun Batafsil ma'lumotga qarang.
Eng faol MPI funksiyalarini tahlil qiling
MPI ilovasining xatti-harakatlarini tahlil qiling, to'siqlarni toping va dastur ish faoliyatini yaxshilash yo'llarini topish uchun serializatsiyani aniqlang.
- Xulosa sahifasidan Voqealar xronologiyasini oching view eng yaxshi MPI funksiyalarini chuqur tahlil qilish uchun Davom etish > Diagrammalar > Voqealar taymeri-ni bosish orqali.
Jadvalda vaqt o'tishi bilan individual jarayon harakatlari ko'rsatilgan.
Ilova ishi iterativ bo'lib, bunda har bir iteratsiya hisoblash qismi va MPI aloqalaridan iborat. - Sichqonchani kerakli vaqt oralig'ida sudrab borish orqali diqqatni qaratish va kattalashtirish uchun bitta iteratsiyani aniqlang:
Iz view siz tanlagan iz ichidagi bo'limni ko'rsatadi. Voqealar xronologiyasi diagrammasi tanlangan iteratsiya davomida faol bo'lgan voqealarni ko'rsatadi.
- Gorizontal chiziqlar ushbu jarayonlarda chaqirilgan funktsiyalarga ega jarayonlarni ifodalaydi.
- Qora chiziqlar jarayonlar o'rtasida yuborilgan xabarlarni ko'rsatadi. Bu liniyalar jo‘natish va qabul qilish jarayonlarini bog‘laydi.
- Moviy chiziqlar translyatsiya yoki qisqartirish operatsiyalari kabi jamoaviy operatsiyalarni ifodalaydi.
- Flat Pro-ga o'tingfile yorlig'iga (A) o'ting, siz (Voqealar Xronologiyasida tanlangan) vaqt nuqtasida bajariladigan funktsiyalarni batafsil ko'rib chiqish uchun.
- Ilovangizdagi MPI jarayoni faolligini tahlil qilish uchun MPI funksiyalarini guruhdan ajrating.
Buni amalga oshirish uchun Flat Pro-da Barcha jarayonlar > Guruh MPI (B) ni o'ng tugmasini bosingfile va UngroupMPI-ni tanlang. Ushbu operatsiya alohida MPI qo'ng'iroqlarini ochib beradi. - Iteratsiya boshida MPI_Sendrecv yordamida bevosita qo'shnilari bilan bog'lanish jarayonlarini tahlil qiling. Misol uchunampga:
- a. s daample, MPI_Sendrecv ma'lumotlar almashinuvida muammo bor: jarayon oldingisi bilan almashish tugaguniga qadar keyingi qo'shnisi bilan ma'lumot almashmaydi. Tadbirlar Xronologiyasi view bu darboğazni zinapoya sifatida ko'rsatadi.
- b. Iteratsiya oxiridagi MPI_Allreduce barcha jarayonlarni qayta sinxronlashtiradi; shuning uchun bu blok teskari zinapoyaga ega.
- Function Pro-dan foydalanib, serializatsiyani aniqlangfile va Message Profile views.
- a. Bir vaqtning o'zida diagrammalarni oching:
Function Pro-dafile diagrammaga o'ting, "Yuklash balansi" yorlig'ini oching. - Message Pro-ni ochish uchun Grafiklar menyusiga o'tingfile.
- b. Yuklash balansi ilovasida MPI_Sendrecv va MPI_Allreduce ni kengaytiring. Load Balancing MPI_Sendrecv da sarflangan vaqt jarayon soni ortib borishini, MPI_Allreduce uchun vaqt esa qisqarishini bildiradi.
- c. Message Pro-ni ko'rib chiqingfile Pastki o'ng burchakdagi diagramma.
Bloklarning rang kodlashi shuni ko'rsatadiki, yuqori darajadan pastroq darajaga o'tadigan xabarlar proportsional ravishda ko'proq vaqt talab qiladi, pastroqdan yuqori darajaga o'tadigan xabarlar esa zaif juft-toq naqshni ko'rsatadi:
- a. Bir vaqtning o'zida diagrammalarni oching:
Qiyosiy tahlil natijalari shuni ko'rsatadiki, qo'llashda murakkab almashinuv sxemalari mavjud emas, almashinuv faqat qo'shni jarayonlar bilan amalga oshiriladi. Ma'lumotlar ilovaning aloqa modelini optimallashtirish uchun aloqalarni o'zgartirish bosqichida ilovangiz samaradorligini oshirish uchun zarur bo'ladi.
Disbalanslangan aloqalarni aniqlang
Arizangizni ideal sharoitda tomosha qiling va asl izni solishtiring file muammoli shovqinlarni ajratish uchun ideallashtirilgan bilan.
- Ideallashtirilgan yarating file:
- a. Kengaytirilgan > Ideallashtirish-ni tanlang yoki ni bosing
(Ideallashtirish) asboblar paneli tugmasi.
- b. Ideallashtirish dialog oynasidagi idealizatsiya parametrlarini tekshiring (ideal iz file nomi va konvertatsiya qilish uchun vaqt oralig'i).
- c. Izingizni ideallashtirish uchun Boshlash tugmasini bosing.
- a. Kengaytirilgan > Ideallashtirish-ni tanlang yoki ni bosing
- Asl izni ideallashtirilgan iz bilan solishtiring:
- a. Kengaytirilgan > Nomutanosiblik diagrammasi-ni tanlang yoki ni bosing
(Muvozanat diagrammasi) asboblar paneli tugmasi.
- b. Disbalans diagrammasi dialog oynasida Boshqasini ochish tugmasini bosing File tugmasini bosing, ideallashtirilgan izga o'ting va uni tanlang.
- c. Disbalans diagrammasi oynasida Total Mode tugmasini bosing va Breakdown Mode ni tanlang.
- a. Kengaytirilgan > Nomutanosiblik diagrammasi-ni tanlang yoki ni bosing
MPI_Sendrecv eng ko'p vaqt talab qiladigan funktsiya ekanligini ko'rishingiz mumkin. Nomutanosiblik og'irligi ichida ko'rsatiladi
ochiq rang va MPI_Sendrecv funksiyasi uchun taxminan 10% ni tashkil qiladi. Bu jarayonlar bir-birini kutish uchun sarflaydigan vaqt.
Aloqalarni o'zgartirish orqali ilova samaradorligini oshiring
- Bloklashni bloklanmaydigan aloqaga almashtirish orqali MPI ilovasining ish faoliyatini yaxshilang.
Kodingizda MPI_Sendrcv seriyasini bloklanmagan aloqa bilan almashtiring: MPI_Isend va MPI_Irecv. Misol uchunample: Asl kod parchasi:
// chegara almashinuvi
bo'shliq almashinuvi (para* p, panjara* gr){
int i, j;
MPI_Status status_100, status_200, status_300, status_400;
// birinchi qatorni pastga yuboring
MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->pastga, 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);
// oxirgi qatorga yuboring
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->past, 200, MPI_COMM_WORLD, &status_200);
Intel Trace Analyzer solishtirmasidan foydalaning view ketma-ketlashtirilgan ilovani qayta ko'rib chiqilgan bilan solishtirish
// chap ustunni tmp massivlariga nusxalash
if(gr->chap != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
// to'g'ri yuboring
MPI_Yuborish(o'ngga_ko'p, gr->lrow+2, MPI_DOUBLE, gr->o'ng, 400, MPI_COMM_WORLD); }
if(gr->chap != MPI_PROC_NULL)
{
MPI_Recv(chap_kol, gr->lrow+2, MPI_DOUBLE, gr->chap, 400, MPI_COMM_WORLD,&status_400); for(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = chap_col[i];
}
}
Yangilangan kod parchasi
MPI_Request so'rovi[7];
// birinchi qatorni pastga yuboring
MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->pastga, 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, talab, MPI_STATUSES_IGNORE);
Tuzatilgandan so'ng, qayta ko'rib chiqilgan ilovaning bitta iteratsiyasi quyidagi kabi ko'rinadiampga: - Intel Trace Analyzer solishtirmasidan foydalaning view ketma-ketlashtirilgan ilovani qayta ko'rib chiqilgan ilova bilan solishtirish. Taqqoslash yordamida ikkita izni solishtiring View, borish View > Taqqoslash. Taqqoslash View shunga o'xshash:
Taqqoslashda View, siz bloklanmagan aloqadan foydalanish ketma-ketlikni olib tashlash va jarayonlarning aloqa vaqtini kamaytirishga yordam berishini ko'rishingiz mumkin.
ESLATMA Ilovangizning tugun darajasidagi ishlashi haqida qo'shimcha ma'lumot olish uchun tegishli vositalar uchun hujjatlarga qarang: Intel® VTune™ Profiler Intel® Advisor yordamida MPI kodini tahlil qilish va Intel® MPI ilovalarini tahlil qilish.
Batafsil ma'lumot
Intel Trace Analyzer va Collector haqida qo'shimcha ma'lumot olish uchun quyidagi manbalarni o'rganing.
Ogohlantirishlar va Ogohlantirishlar
- Intel texnologiyalari yoqilgan apparat, dasturiy ta'minot yoki xizmatni faollashtirishni talab qilishi mumkin.
- Hech bir mahsulot yoki komponent mutlaqo xavfsiz bo'lishi mumkin emas.
- Sizning xarajatlaringiz va natijalaringiz farq qilishi mumkin.
- © Intel korporatsiyasi. Intel, Intel logotipi va boshqa Intel belgilari Intel korporatsiyasi yoki uning sho'ba korxonalarining savdo belgilaridir. Boshqa nomlar va brendlar boshqalarning mulki sifatida da'vo qilinishi mumkin.
- Ushbu hujjatda hech qanday intellektual mulk huquqlariga litsenziya (to'g'ridan-to'g'ri yoki nazarda tutilgan holda) berilmaydi.
- Ta'riflangan mahsulotlar dizayn nuqsonlari yoki xato deb nomlanuvchi xatolarni o'z ichiga olishi mumkin, bu esa mahsulotning e'lon qilingan spetsifikatsiyalardan chetga chiqishiga olib kelishi mumkin. Joriy xarakterli xatoliklar so'rov bo'yicha mavjud.
- Intel barcha ochiq va nazarda tutilgan kafolatlardan, jumladan, cheklanmagan holda, savdoga yaroqlilik, ma'lum bir maqsadga muvofiqlik va huquqbuzarliklarga yo'l qo'ymaslik kafolatlarini, shuningdek, ishlash, muomala kursi yoki savdoda foydalanishdan kelib chiqadigan har qanday kafolatlarni rad etadi.
Hujjatlar / manbalar
![]() |
intel Intel Trace Analyzer va Collector bilan ishlashni boshlang [pdf] Foydalanuvchi uchun qoʻllanma Intel Trace Analyzer va Collector bilan ishlashni boshlang, Intel, Trace Analyzer va Collector, Collector bilan ishlashni boshlang |