Intel Trace Analyzer болон Collector-г ашиглаж эхлээрэй
Intel® Trace Analyzer болон Collector-г ашиглаж эхлээрэй
Энэхүү Эхлэх баримт бичиг болон урьдчилан цуглуулсан мөрийг ашиглана уу file Intel® Trace Analyzer болон Collector ашиглан MPI гүйцэтгэлийн үндсэн шинжилгээг хийх.
Intel Trace Analyzer болон Collector нь мессеж дамжуулах интерфэйс (MPI) ашиглалтын үр ашгийг судлах, харилцааны халуун цэгүүд, синхрончлолын саатал, ачааллын тэнцвэрийг тодорхойлоход тусалдаг. Бүтээгдэхүүний талаарх дэлгэрэнгүй мэдээллийг Intel Trace Analyzer болон Collector бүтээгдэхүүний хуудаснаас үзнэ үү.
Intel Trace Analyzer болон Collector татаж авах
- Intel® oneAPI HPC Toolkit-ийн нэг хэсэг болгон
- бие даасан хэрэгсэл болгон
Урьдчилсан нөхцөл
- Intel Trace Analyzer болон Collector-г ажиллуулахаасаа өмнө хамгийн сүүлийн үеийн Intel® MPI Library болон Intel® oneAPI DPC++/C++ Compiler эсвэл Intel® Fortran Compiler суулгасан эсэхээ шалгаарай.
- Энэ нь хөрвүүлэгчид, Intel MPI номын сан болон Intel Trace Analyzer болон Collector-д шаардлагатай орчны хувьсагчдыг тохируулах ба та програмуудаа хянахад бэлэн болно.
- Дэлгэрэнгүй мэдээллийг: Intel® oneAPI HPC хэрэгслийн системийн шаардлагаас үзнэ үү.
Ажлын явцыг ойлгох
- Өргөдөлдөө мөшгих
- Хамгийн идэвхтэй MPI функцүүдэд дүн шинжилгээ хийх
- Асуудалтай харилцан үйлчлэлийг тодорхойлох
- Асуудал үүсгэгч функцийг солих замаар програмынхаа гүйцэтгэлийг сайжруулаарай
MPI програмаа мөшгих
Мөр үүсгэх file дараах хэрэглээний зан үйлийн шинжилгээнд зориулж үйл явдлын бүртгэлийг цуглуулах.
- oneAPI суулгацын захирлаас setvars скриптийг ажиллуулж Intel® Trace Analyzer болон Collector-ийг ажиллуулах орчныг тохируулна уу.
ЖИЧ
Анхдагчаар Intel Trace Analyzer болон Collector-ийг Linux* үйлдлийн системд зориулсан /opt/intel/oneapi/itac болон программд суулгасан болно. Files (x86)\Intel\oneAPI\itac\Windows* үйлдлийн системд зориулсан хамгийн сүүлийн хувилбар.
Линукс дээр:
$ эх үүсвэр /opt/intel/oneapi/setvars.sh
Windows дээр:
“C:\Program Files (x86)\Intel\oneAPI\setvars.bat" - MPI програмаа ажиллуулаад -trace сонголтоор ул мөр үүсгэ.
Линукс дээр:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
Windows дээр:
Програмыг эмхэтгэж, ул мөрийг цуглуул.
Intel oneAPI DPC++/C++ хөрвүүлэгчийн хувьд дараахыг ажиллуулна уу:
> mpiicc -trace poisson_sendrecv.single.c
Intel Fortran хөрвүүлэгчийн хувьд дараахыг ажиллуулна уу:
> mpiifort -trace poisson_sendrecv.single.f
Энэ эксample нь as-д зориулсан ул мөр (stf*) үүсгэдэгample poisson_sendrcv.single MPI програм - Үүсгэсэн .stf-г нээнэ үү file Intel Trace Analyzer болон Intel Trace Analyzer болон Collector-тай.
Линукс дээр:
$ traceanalyzer ./ poisson_sendrecv.single.stf
Windows дээр:
traceanalyzer poisson_sendrecv.single.stf
ЖИЧ
Туршилтын зорилгоор та урьдчилан цуглуулсан ул мөрийг татаж авах боломжтой file poisson_sendrecv.single.stf-г энэ баримт бичигт ашигласан poisson-г сонгоод Intel Trace Analyzer болон Collector ашиглан нээнэ үү.
The .stf file Хураангуй хуудсанд нээгдэнэ view, энэ нь таны програмын гүйцэтгэлийн талаарх ерөнхий мэдээллийг илэрхийлнэ:ЖИЧ Intel Trace Analyzer болон Collector функцын талаар нэмэлт мэдээлэл авахыг хүсвэл Нэмэлт мэдээлэл авахыг үзнэ үү.
Хамгийн идэвхтэй MPI функцүүдэд дүн шинжилгээ хийх
MPI програмын үйл ажиллагаанд дүн шинжилгээ хийж, саад тотгорыг олж, програмын гүйцэтгэлийг сайжруулах арга замыг олохын тулд цуваа холболтыг тодорхойлно.
- Хураангуй хуудаснаас Үйл явдлын цагийн хуваарийг нээнэ үү view Үргэлжлүүлэх > Диаграмм > Үйл явдлын цагийн хуваарь дээр дарж шилдэг MPI функцуудад гүнзгий дүн шинжилгээ хийнэ үү.
График нь тодорхой хугацааны туршид үйл явцын үйл ажиллагааг харуулдаг.
Хэрэглээний ажил нь давталттай бөгөөд давталт бүр нь тооцоолох хэсэг болон MPI холболтуудаас бүрддэг. - Шаардлагатай хугацааны интервал дээр хулганаа чирж анхаарлаа төвлөрүүлэхийн тулд нэг давталтыг тодорхойлж, томруулна уу:
ул мөр view таны сонгосон мөр доторх хэсгийг харуулна. Үйл явдлын цагийн хэлхээс нь сонгосон давталтын үед идэвхтэй байсан үйл явдлуудыг харуулдаг.
- Хэвтээ зураас нь эдгээр процесст дуудагдсан функц бүхий процессуудыг илэрхийлдэг.
- Хар шугамууд нь процессуудын хооронд илгээсэн мессежийг заана. Эдгээр шугамууд нь илгээх болон хүлээн авах үйл явцыг холбодог.
- Цэнхэр шугамууд нь цацах, багасгах үйл ажиллагаа гэх мэт хамтын ажиллагааг илэрхийлдэг.
- Flat Pro руу шилжихfile tab (A) дээр дарж таны (Үйл явдлын цагийн хуваарьт сонгосон) цагийн цэг дээр ажиллаж байгаа функцуудыг харах боломжтой.
- Өөрийн аппликешн дэх MPI процессын үйл ажиллагаанд дүн шинжилгээ хийхийн тулд MPI функцүүдийн бүлгийг задлаарай.
Үүнийг хийхийн тулд Flat Pro-ийн All Processes > Group MPI (B) дээр хулганы баруун товчийг дарна ууfile болон UngroupMPI-г сонгоно уу. Энэ үйлдэл нь тусдаа MPI дуудлагуудыг ил болгодог. - Давталтын эхэнд MPI_Sendrecv ашиглан шууд хөршүүдтэйгээ харилцах үйл явцад дүн шинжилгээ хийнэ үү. Жишээ ньampле:
- а. s-дample, MPI_Sendrecv өгөгдлийн солилцоо нь хүндрэлтэй байдаг: өмнөх хөрштэйгөө солилцох хүртэл процесс нь дараагийн хөрштэйгээ өгөгдөл солилцдоггүй. Үйл явдлын цагийн хуваарь view Энэ гацааг шат хэлбэрээр харуулдаг.
- б. Давталтын төгсгөлд байгаа MPI_Allreduce нь бүх процессыг дахин синхрончилдог; Ийм учраас энэ блок нь урвуу шаттай байдаг.
- Function Pro-г ашиглан сериалчлалыг тодорхойлfile болон Message Profile views.
- а. Графикуудыг нэгэн зэрэг нээнэ үү:
Function Pro-дfile диаграмм, Ачааллын балансыг нээнэ үү. - Message Pro-г нээхийн тулд Charts цэс рүү очно ууfile.
- б. Ачааллын үлдэгдэл таб дээрээс MPI_Sendrecv болон MPI_Allreduce-г өргөжүүлнэ үү. Ачаалал тэнцвэржүүлэх нь MPI_Sendrecv-д зарцуулсан хугацаа процессын тоо нэмэгдэх тусам нэмэгдэж, MPI_Allreduce-д зарцуулах хугацаа багасч байгааг харуулж байна.
- в. Message Pro-г шалгана ууfile Диаграмыг баруун доод буланд буулгана уу.
Блокуудын өнгөний кодчилол нь өндөр зэрэглэлээс доод зэрэглэл рүү шилжих мессежүүдэд пропорциональ илүү хугацаа шаардагдахыг харуулж байгаа бол доод зэрэглэлээс өндөр зэрэглэл рүү шилжих зурвасууд нь тэгш сондгой хэлбэрийн сул хэв маягийг илрүүлдэг.
- а. Графикуудыг нэгэн зэрэг нээнэ үү:
Харьцуулсан шинжилгээний үр дүн нь хэрэглээний нарийн төвөгтэй солилцооны загвар байхгүй, солилцоо нь зөвхөн хөрш зэргэлдээх процессуудтай явагддаг болохыг харуулж байна. Мэдээлэл нь програмын харилцааны загварыг оновчтой болгохын тулд харилцаа холбоог өөрчлөх замаар програмынхаа гүйцэтгэлийг сайжруулахад зайлшгүй шаардлагатай болно.
Тэнцвэргүй харилцаа холбоог тодорхойлох
Тохиромжтой нөхцөлд програмаа харж, анхны ул мөрийг харьцуулна уу file асуудалтай харилцан үйлчлэлийг тусгаарлахын тулд хамгийн тохиромжтой хувилбартай.
- Идеалжуулсан зүйлийг бий болгох file:
- а. Нарийвчилсан > Idealization-г сонгох эсвэл дээр дарна уу
(Idealization) хэрэгслийн самбарын товчлуур.
- б. Idealization харилцах цонхноос idealization параметрүүдийг шалгана уу (ideal trace file нэр болон хувиргах хугацааны хүрээ).
- в. Өөрийн ул мөрийг оновчтой болгохын тулд Start дээр дарна уу.
- а. Нарийвчилсан > Idealization-г сонгох эсвэл дээр дарна уу
- Анхны ул мөрийг оновчтой ул мөртэй харьцуул.
- а. Нарийвчилсан > Тэнцвэргүй байдлын диаграммыг сонгох буюу дээр дарна уу
(Тэнцвэргүй байдлын диаграмм) хэрэгслийн самбарын товчлуур.
- б. Тэнцвэргүй байдлын диаграмм харилцах цонхны "Өөрийг нээх" дээр дарна уу File товчийг дарж, хамгийн тохиромжтой мөр рүү шилжиж, түүнийг сонгоно уу.
- в. Тэнцвэргүй байдлын диаграмын цонхноос Нийт горим товчийг дараад Breakdown Mode-г сонгоно.
- а. Нарийвчилсан > Тэнцвэргүй байдлын диаграммыг сонгох буюу дээр дарна уу
Та MPI_Sendrecv нь хамгийн их цаг зарцуулдаг функц гэдгийг харж болно. Тэнцвэргүй байдлын жинг дотор харуулна
цайвар өнгөтэй бөгөөд MPI_Sendrecv функцийн 10 орчим хувийг эзэлдэг. Энэ бол процессууд бие биенээ хүлээх цаг юм.
Харилцаа холбоог өөрчилснөөр програмынхаа гүйцэтгэлийг сайжруулаарай
- Блоклохыг блоклодоггүй харилцаа болгон өөрчлөх замаар MPI програмын гүйцэтгэлийг сайжруул.
Кодынхоо цуваа MPI_Sendrcv-г блоклохгүй холболтоор солино: MPI_Isend болон MPI_Irecv. Жишээ ньample: Жинхэнэ кодын хэсэг:
// хилийн солилцоо
хүчингүй солилцоо(para* p, grid* gr){
int i,j;
MPI_Status status_100, status_200, status_300, status_400;
// эхний мөрийг буулгана
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);
// сүүлийн мөрийг илгээх
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);
Intel Trace Analyzer харьцуулалтыг ашиглана уу view сериалчилсан програмыг шинэчилсэнтэй харьцуулах
// зүүн баганыг tmp массив руу хуулна
if(gr->зүүн != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = баруун_кол[i]; баруун_col[i] = gr->x_new[i][gr->lcol];
// зөв илгээх
MPI_Илгээх(баруун_кол, gr->lrow+2, MPI_DOUBLE, gr->баруун, 400, MPI_COMM_WORLD); }
if(gr->зүүн != MPI_PROC_NULL)
{
MPI_Recv(зүүн_кол, gr->lrow+2, MPI_DOUBLE, gr->зүүн, 400, MPI_COMM_WORLD,&status_400); for(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = зүүн_col[i];
}
}
Шинэчлэгдсэн кодын хэсэг
MPI_Request req[7];
// эхний мөрийг буулгана
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_Хүлээлт(7, шаардлага, MPI_STATUSES_NORE);
Залруулсаны дараа шинэчилсэн програмын нэг давталт нь дараах өмнөх шиг харагдах болноampле: - Intel Trace Analyzer харьцуулалтыг ашиглана уу view сериалчилсан програмыг шинэчилсэн програмтай харьцуулах. Харьцуулалтын тусламжтайгаар хоёр ул мөрийг харьцуул View, явах View > Харьцуулах. Харьцуулалт View төстэй харагдаж байна:
Харьцуулалт дээр View, та блоклохгүй харилцаа холбоог ашиглах нь цуваажилтыг арилгах, процессуудын харилцах хугацааг багасгахад тусалдаг болохыг харж болно.
ЖИЧ Програмынхаа зангилааны түвшний гүйцэтгэлийн талаар нэмэлт мэдээлэл авахыг хүсвэл холбогдох хэрэгслүүдийн баримт бичгийг үзнэ үү: Intel® VTune™ Profiler MPI кодын шинжилгээ ба Intel® Advisor ашиглан Intel® MPI програмуудад дүн шинжилгээ хийх.
Илүү ихийг мэдэж аваарай
Intel Trace Analyzer болон Collector-ийн талаар нэмэлт мэдээлэл авахыг хүсвэл дараах эх сурвалжуудыг судлаарай.
Мэдэгдэл ба татгалзал
- Intel технологи нь идэвхжүүлсэн техник хангамж, програм хангамж эсвэл үйлчилгээ идэвхжүүлэхийг шаардаж магадгүй юм.
- Аливаа бүтээгдэхүүн, бүрэлдэхүүн хэсэг нь бүрэн аюулгүй байж чадахгүй.
- Таны өртөг, үр дүн харилцан адилгүй байж болно.
- © Intel корпораци. Intel, Intel лого болон бусад Intel тэмдэг нь Intel корпораци эсвэл түүний охин компаниудын худалдааны тэмдэг юм. Бусад нэр, брэндийг бусдын өмч гэж үзэж болно.
- Энэхүү баримт бичигт оюуны өмчийн эрхийн аливаа лицензийг (илэрхий ба далд хэлбэрээр, эстоппел болон бусад хэлбэрээр) олгохгүй.
- Тайлбарласан бүтээгдэхүүнүүд нь дизайны согог эсвэл алдаа гэж нэрлэгддэг алдаа агуулсан байж болох бөгөөд энэ нь бүтээгдэхүүнийг хэвлэгдсэн техникийн үзүүлэлтээс хазайхад хүргэж болзошгүй юм. Одоогийн тодорхойлогдсон алдааг хүсэлтээр авах боломжтой.
- Intel нь худалдаалах, тодорхой зорилгод нийцэх, зөрчихгүй байх зэрэг шууд болон далд баталгааг хязгаарлахгүй, түүнчлэн гүйцэтгэлийн явц, арилжааны явц, худалдааны ашиглалтаас үүдэлтэй аливаа баталгааг үгүйсгэдэг.
Баримт бичиг / нөөц
![]() |
intel Intel Trace Analyzer болон Collector-ийг ашиглаж эхлээрэй [pdf] Хэрэглэгчийн гарын авлага Intel Trace Analyzer болон Collector-ийг ашиглаж эхлэх, Intel, Trace Analyzer болон Collector, Collector-ийг ашиглаж эхлэх |