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 кітапханасын және Intel® oneAPI DPC++/C++ компиляторын немесе Intel® Fortran компиляторын орнатқаныңызға көз жеткізіңіз.
- Бұл компиляторлар, Intel MPI кітапханасы және Intel Trace Analyzer және Collector үшін қажетті орта айнымалы мәндерін орнатады және сіз қолданбаларды қадағалауға дайынсыз.
- Қосымша ақпаратты мына жерден қараңыз: Intel® oneAPI HPC Toolkit Жүйе талаптары.
Жұмыс процесін түсіну
- Қолданбаңызды қадағалаңыз
- Ең белсенді MPI функцияларын талдаңыз
- Проблемалық өзара әрекеттесуді анықтаңыз
- Мәселе тудыратын функцияны ауыстыру арқылы қолданбаның жұмысын жақсартыңыз
MPI қолданбаңызды қадағалаңыз
Ізді жасаңыз file келесі қолданба әрекетін талдау үшін оқиға журналдарын жинау.
- oneAPI орнату директорынан setvars сценарийін іске қосу арқылы Intel® Trace Analyzer және Collector іске қосу ортасын орнатыңыз.
ЕСКЕРТУ
Әдепкі бойынша Intel Trace Analyzer және Collector Linux* ОЖ үшін /opt/intel/oneapi/itac жүйесіне және Бағдарламаға орнатылады. FileWindows* ОЖ үшін s (x86)\Intel\oneAPI\itac\соңғы нұсқасы.
Linux жүйесінде:
$ көзі /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 as үшін із (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 көмегімен ашыңыз.
.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 кеңейтіңіз. Жүктемені теңестіру MPI_Sendrecv ішінде жұмсалған уақыт процесс нөмірімен бірге артып, MPI_Allreduce уақыты азаятынын көрсетеді.
- в. Message Pro бағдарламасын тексеріңізfile Төменгі оң жақ бұрышқа дейінгі диаграмма.
Блоктардың түс кодтауы жоғары дәрежеден төменгі деңгейге өтетін хабарларға пропорционалды түрде көбірек уақыт қажет екенін көрсетеді, ал төменгі деңгейден жоғарырақ дәрежеге өтетін хабарламалар жұп-тақ үлгінің әлсіз түрін көрсетеді:
- а. Диаграммаларды бір уақытта ашыңыз:
Салыстырмалы талдау нәтижелері қолдануда күрделі алмасу заңдылықтарының жоқтығын, алмасу тек көршілес процестермен жүзеге асырылатынын көрсетеді. Ақпарат қолданбаның байланыс үлгісін оңтайландыру үшін Байланыстарды өзгерту қадамы арқылы қолданба өнімділігін жақсарту үшін маңызды болады.
Теңгерімсіз байланыстарды анықтаңыз
Қолданбаңызды тамаша жағдайда бақылаңыз және бастапқы ізді салыстырыңыз file проблемалық өзара әрекеттесулерді оқшаулау үшін идеалдандырылғанымен.
- Идеализация жасаңыз file:
- а. Кеңейтілген > Идеалдау тармағын таңдаңыз немесе түймесін басыңыз
(Идеализация) құралдар тақтасының түймесі.
- б. Идеалдау диалогтық терезесінде идеалдандыру параметрлерін тексеріңіз (идеализация file атауы және түрлендіруге арналған уақыт аралығы).
- в. Жолды идеалдандыру үшін Бастау түймесін басыңыз.
- а. Кеңейтілген > Идеалдау тармағын таңдаңыз немесе түймесін басыңыз
- Бастапқы ізді идеалдандырылған ізбен салыстырыңыз:
- а. Қосымша > Теңгерімсіздік диаграммасын таңдаңыз немесе түймесін басыңыз
(Теңгерімсіздік диаграммасы) құралдар тақтасының түймесі.
- б. Теңгерімсіздік диаграммасы диалогтық терезесінде Басқасын ашу түймешігін басыңыз File түймешігін басып, идеалдандырылған жолға өтіп, оны таңдаңыз.
- в. Теңгерімсіздік диаграммасы терезесінде Жалпы режим түймесін басып, Бөлу режимін таңдаңыз.
- а. Қосымша > Теңгерімсіздік диаграммасын таңдаңыз немесе түймесін басыңыз
MPI_Sendrecv ең көп уақытты қажет ететін функция екенін көруге болады. Теңгерімсіздік салмағы көрсетіледі
ашық түсті және MPI_Sendrecv функциясы үшін шамамен 10% құрайды. Бұл процестер бір-бірін күтуге жұмсайтын уақыт.
Байланыстарды өзгерту арқылы қолданба өнімділігін жақсартыңыз
- Блоктауды бұғаттамайтын байланысқа өзгерту арқылы MPI қолданбасының жұмысын жақсартыңыз.
Кодыңызда MPI_Sendrcv сериясын бұғаттамайтын байланыспен ауыстырыңыз: MPI_Isend және MPI_Irecv. Мысалыample: Түпнұсқа код үзіндісі:
// шекаралық алмасу
бос алмасу (para* p, тор* гр){
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->төмен, 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->төмен, 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->төмен, 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® 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, Коллектормен жұмысты бастау |