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 Toolkit тутумунун талаптары.
Иш процессин түшүнүү
- Колдонмоңузга көз салыңыз
- Эң активдүү MPI функцияларын талдаңыз
- Көйгөйлүү өз ара аракеттенүүнү аныктоо
- Көйгөй жаратуучу функцияны алмаштыруу менен колдонмоңуздун иштешин жакшыртыңыз
MPI колдонмоңузга көз салыңыз
Из түзүү file төмөнкү колдонмо жүрүм талдоо үчүн окуя журналдарын чогултуу үчүн.
- oneAPI орнотуу директорунун setvars скриптин иштетүү менен Intel® Trace Analyzer жана Collector ишке киргизүү үчүн чөйрөнү орнотуңуз
ЭСКЕРТҮҮ
Демейки боюнча, Intel Trace Analyzer жана Collector Linux* OS үчүн /opt/intel/oneapi/itac жана Программага орнотулган. Files (x86)\Intel\oneAPI\itac\Windows* OS үчүн эң акыркы.
Linux боюнча:
$ source /opt/intel/oneapi/setvars.sh
Windows'до:
“C:\Program Files (x86)\Intel\oneAPI\setvars.bat" - MPI тиркемеңизди иштетиңиз жана -trace опциясы менен изди жаратыңыз.
Linux боюнча:
$ 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 катары үчүн из (stf*) жарататample poisson_sendrcv.single MPI колдонмосу - Түзүлгөн .stf файлын ачыңыз file Intel Trace Analyzer менен Intel Trace Analyzer жана Collector менен.
Linux боюнча:
$ traceanalyzer ./ poisson_sendrecv.single.stf
Windows'до:
traceanalyzer poisson_sendrecv.single.stf
ЭСКЕРТҮҮ
Сыноо максатында сиз алдын ала чогултулган изди жүктөп алсаңыз болот file Бул документте колдонулган поиссон үчүн poisson_sendrecv.single.stf жана аны Intel Trace Analyzer жана Collector менен ачыңыз.
The .stf file Жыйынтык бетинде ачылат view, бул колдонмоңуздун иштеши жөнүндө жалпы маалыматты билдирет:ЭСКЕРТҮҮ Intel Trace Analyzer жана Collector функциялары жөнүндө көбүрөөк маалымат алуу үчүн, Көбүрөөк билүү караңыз.
Эң активдүү MPI функцияларын талдоо
MPI тиркемесинин жүрүм-турумун анализдеңиз, тоскоолдуктарды табыңыз жана колдонмонун иштешин жакшыртуунун жолдорун табуу үчүн сериалдаштырууну аныктаңыз.
- Жыйынтык барагынан Окуянын хронологиясын ачыңыз view жогорку MPI функцияларын терең талдоо үчүн Улантуу > Диаграммалар > Окуялардын хронологиясын чыкылдатуу менен.
Диаграмма убакыттын өтүшү менен жеке процесс аракеттерин көрсөтөт.
Колдонмо иши итеративдик болуп саналат, мында ар бир итерация эсептөө бөлүгүнөн жана MPI байланыштарынан турат. - Керектүү убакыт аралыгы боюнча чычканды сүйрөө менен көңүл буруу үчүн бир итерацияны аныктаңыз жана ага чоңойтуңуз:
Из view сиз тандаган издин ичиндеги бөлүмдү көрсөтөт. Окуялардын хронологиясы диаграммасы тандалган итерация учурунда активдүү болгон окуяларды көрсөтөт.
- Горизонталдык тилкелер бул процесстерде чакырылган функциялар менен процесстерди билдирет.
- Кара сызыктар процесстер ортосунда жөнөтүлгөн билдирүүлөрдү көрсөтөт. Бул линиялар жөнөтүү жана кабыл алуу процесстерин бириктирет.
- Көк сызыктар уктуруу же кыскартуу операциялары сыяктуу жамааттык операцияларды билдирет.
- Flat Pro'го которулуңузfile табулатура (A) сиз убакыт чекитинде аткарылуучу функцияларды жакшыраак карап чыгуу үчүн (Окуя Хронологиясында тандалган).
- Колдонмоңуздагы MPI процессинин активдүүлүгүн талдоо үчүн MPI функцияларын группадан ажыратыңыз.
Бул үчүн, Flat Pro ичиндеги Бардык процесстер > Group MPI (B) баскычын оң баскыч менен чыкылдатыңызfile жана UngroupMPI тандаңыз. Бул операция жеке MPI чалууларды ачыкка чыгарат. - Итерациянын башталышында MPI_Sendrecv аркылуу түз кошуналары менен байланыш процесстерин талдаңыз. Мисалы үчүнampле:
- а. Сample, MPI_Sendrecv маалымат алмашууда бир кыйынчылык бар: процесс мурункусу менен алмашуу аяктаганга чейин кийинки кошунасы менен маалымат алмашпайт. Окуянын убакыт тилкелери view бул тоскоолдукту тепкич катары көрсөтөт.
- б. Итерациянын аягындагы MPI_Allreduce бардык процесстерди кайра синхрондошот; ошондуктан бул блок тескери тепкичтин көрүнүшүнө ээ.
- Function Pro аркылуу сериалдаштырууну аныктаңызfile жана Message Profile views.
- а. Диаграммаларды бир эле учурда ачыңыз:
Function Pro ичиндеfile диаграммада Жүктөө балансын ачыңыз. - Message Pro ачуу үчүн Диаграммалар менюсуна өтүңүзfile.
- б. Жүктүн балансы өтмөгүндө, MPI_Sendrecv жана MPI_Allreduce кеңейтүү. Load Balancing MPI_Sendrecv ичинде сарпталган убакыт процесстин саны менен көбөйөрүн, ал эми MPI_Allreduce үчүн убакыт азаятын көрсөтөт.
- в. Message Pro программасын карап көрүңүзfile Төмөнкү оң бурчка чейин диаграмма.
Блоктордун түстүү коддору жогорку даражадан төмөнкү даражага өтүүчү билдирүүлөр пропорционалдуу көбүрөөк убакытты талап кылаарын көрсөтүп турат, ал эми төмөнкү даражадан жогорку даражага өтүүчү билдирүүлөр алсыз жуп-так үлгүсүн көрсөтөт:
- а. Диаграммаларды бир эле учурда ачыңыз:
Салыштырмалуу анализдин натыйжалары колдонууда татаал алмашуу схемалары жок экенин, алмашуу кошуна процесстер менен гана жүргүзүлөөрүн көрсөтүп турат. Маалымат колдонмонун байланыш моделин оптималдаштыруу үчүн Байланыш кадамын өзгөртүү аркылуу Колдонмоңуздун иштешин жакшыртуу үчүн маанилүү болот.
Дисбаланссыз байланыштарды аныктоо
Сиздин арызыңызды идеалдуу шарттарда көрүңүз жана баштапкы изди салыштырыңыз file көйгөйлүү өз ара обочолонуу үчүн идеалдуу бири менен.
- Идеалдашканды түзүү file:
- а. Өркүндөтүлгөн > Идеалдаштырууну тандаңыз же чыкылдатыңыз
(Идеалдаштыруу) куралдар панелинин баскычы.
- б. Идеалдаштыруу диалог кутусунан идеалдаштыруу параметрлерин текшериңиз (идеалдуу из file аталышы жана конверсия үчүн убакыт диапазону).
- в. Изиңизди идеалдаштыруу үчүн Start Click.
- а. Өркүндөтүлгөн > Идеалдаштырууну тандаңыз же чыкылдатыңыз
- Түпнуска изди идеалдаштырылган из менен салыштырыңыз:
- а. Өркүндөтүлгөн > Дисбаланс диаграммасын тандаңыз же чыкылдатыңыз
(Баланссыздык диаграммасы) куралдар панелинин баскычы.
- б. Дисбаланс диаграммасы диалог кутусунда, Башкасын ачууну чыкылдатыңыз File баскычын басып, идеалдаштырылган изге өтүңүз жана аны тандаңыз.
- в. Дисбаланс диаграммасы терезесинде Total Mode баскычын чыкылдатып, Breakdown Mode тандаңыз.
- а. Өркүндөтүлгөн > Дисбаланс диаграммасын тандаңыз же чыкылдатыңыз
MPI_Sendrecv эң көп убакытты талап кылган функция экенин көрө аласыз. дисбаланс салмагы көрсөтүлөт
ачык түс жана MPI_Sendrecv функциясы үчүн болжол менен 10% түзөт. Бул процесстердин бири-бирин күтүү убактысы.
Байланыштарды өзгөртүү менен колдонмоңуздун иштешин жакшыртыңыз
- Бөгөттөөнү бөгөттөгөн байланыштарга өзгөртүү менен MPI тиркемесинин иштешин жакшыртыңыз.
Кодуңузда MPI_Sendrcv сериясын блоктолбогон байланыш менен алмаштырыңыз: MPI_Isend жана MPI_Irecv. Мисалы үчүнample: Түпнуска код үзүндүсү:
// чек ара алмашуу
бош алмашуу(пара* п, тор* гр){
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] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
// туура жөнөтүү
MPI_Send(оң_кол, 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] = left_col[i];
}
}
Жаңыртылган код үзүндүсү
MPI_Request талабы[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_Waitall(7, талап, MPI_STATUSES_IGNORE);
Түзөтүлгөндөн кийин, кайра каралып чыккан өтүнмөнүн бир итерациясы төмөнкүдөй болотampле: - Intel Trace Analyzer салыштыруусун колдонуңуз view серияланган тиркемени кайра каралган колдонмо менен салыштыруу. Салыштыруунун жардамы менен эки изди салыштырыңыз View, бара жатам View > Салыштыр. Салыштыруу View окшош көрүнөт:
Салыштырууда View, сиз блоктолбогон байланышты колдонуу сериялаштыруудан алып салууга жана процесстердин байланыш убактысын кыскартууга жардам берерин көрө аласыз.
ЭСКЕРТҮҮ Колдонмоңуздун түйүн деңгээлиндеги иштеши жөнүндө көбүрөөк маалымат алуу үчүн, тиешелүү куралдар үчүн документтерди караңыз: Intel® VTune™ Profiler MPI кодду талдоо жана Intel® MPI тиркемелерин Intel® Advisor аркылуу талдоо.
Көбүрөөк билүү
Intel Trace Analyzer жана Collector жөнүндө көбүрөөк маалымат алуу үчүн төмөнкү ресурстарды изилдеңиз.
Эскертүүлөр жана баш тартуулар
- Intel технологиялары иштетилген жабдыкты, программалык камсыздоону же кызматты жандантууну талап кылышы мүмкүн.
- Эч бир продукт же компонент толугу менен коопсуз боло албайт.
- Сиздин чыгымдарыңыз жана натыйжаларыңыз ар кандай болушу мүмкүн.
- © Intel Corporation. Intel, Intel логотиби жана башка Intel белгилери Intel корпорациясынын же анын туунду компанияларынын соода белгилери болуп саналат. Башка аталыштар жана бренддер башкалардын менчиги катары талап кылынышы мүмкүн.
- Бул документ тарабынан эч кандай интеллектуалдык менчик укуктарына эч кандай лицензия (экстоппел же башка жол менен ачык же кыйыр түрдө) берилбейт.
- Сүрөттөлгөн өнүмдөр дизайн кемчиликтерин же ката деп аталган каталарды камтышы мүмкүн, алар продукттун жарыяланган спецификациялардан четтеп кетишине алып келиши мүмкүн. Учурдагы мүнөздөлгөн каталар суроо-талабы боюнча жеткиликтүү.
- Intel бардык ачык жана кыйыр кепилдиктерден баш тартат, анын ичинде чектөөсүз, сатууга жарамдуулугун, белгилүү бир максатка ылайыктуулугун жана укук бузууга жол бербөө кепилдиктерин, ошондой эле аткаруунун жүрүшүнөн, сооданын жүрүшүнөн же соодада колдонуудан келип чыккан ар кандай кепилдиктер.
Документтер / Ресурстар
![]() |
intel Intel Trace Analyzer жана Collector менен баштоо [pdf] Колдонуучунун колдонмосу Intel Trace Analyzer жана Collector менен баштаңыз, Intel, Trace Analyzer жана Collector, Collector менен баштаңыз |