Започните са Интел Траце Анализер и Цоллецтор
Започните са Интел® Траце Анализер и Цоллецтор
Користите овај документ за почетак и унапред прикупљени траг file да прођете кроз основну анализу перформанси МПИ помоћу Интел® Траце Анализер и Цоллецтор.
Интел Траце Анализер анд Цоллецтор помаже у истраживању ефикасности коришћења интерфејса за пренос порука (МПИ) и идентификацији комуникацијских врућих тачака, уских грла синхронизације и балансирања оптерећења. За више информација о производу погледајте страницу производа Интел Траце Анализер анд Цоллецтор.
Преузмите Интел Траце Анализер и Цоллецтор
- као део Интел® онеАПИ ХПЦ алата
- као самостално средство
Предуслови
- Пре покретања Интел Траце Анализер анд Цоллецтор, уверите се да сте инсталирали најновију Интел® МПИ библиотеку и Интел® онеАПИ ДПЦ++/Ц++ компајлер или Интел® Фортран компајлер.
- Ово поставља потребне променљиве окружења за компајлере, Интел МПИ библиотеку и Интел Траце Анализер и Цоллецтор, и спремни сте да пратите своје апликације.
- За више информација погледајте: Системски захтеви за Интел® онеАПИ ХПЦ Тоолкит.
Разумети ток рада
- Пратите своју апликацију
- Анализирајте најактивније МПИ функције
- Идентификујте проблематичне интеракције
- Побољшајте перформансе апликације заменом функције која изазива проблеме
Пратите своју МПИ апликацију
Генеришите траг file да прикупи евиденцију догађаја за следећу анализу понашања апликације.
- Подесите окружење за покретање Интел® Траце Анализер и Цоллецтор покретањем сетварс скрипте из онеАПИ инсталационог директора
НАПОМЕНА
Подразумевано, Интел Траце Анализер и Цоллецтор су инсталирани на /опт/интел/онеапи/итац за Линук* ОС и програм Fileс (к86)\Интел\онеАПИ\итац\најновији за Виндовс* ОС.
На Линук-у:
$ соурце /опт/интел/онеапи/сетварс.сх
На Виндовс-у:
„Ц:\Програм Fileс (к86)\Интел\онеАПИ\сетварс.бат” - Покрените своју МПИ апликацију и генеришите праћење помоћу опције -траце.
На Линук-у:
$ мпирун -траце -н 4 ./поиссон_сендрецв.сингле
На Виндовс-у:
Саставите апликацију и прикупите траг.
За компајлер Интел онеАПИ ДПЦ++/Ц++, покрените:
> мпиицц -траце поиссон_сендрецв.сингле.ц
За Интел Фортран Цомпилер покрените:
> мпиифорт -траце поиссон_сендрецв.сингле.ф
Овај бившиampле генерише траг (стф*) за асampле поиссон_сендрцв.сингле МПИ апликација - Отворите генерисани .стф file са Интел Траце Анализер са Интел Траце Анализер и Цоллецтор.
На Линук-у:
$ трацеанализер ./ поиссон_сендрецв.сингле.стф
На Виндовс-у:
трацеанализер поиссон_сендрецв.сингле.стф
НАПОМЕНА
За потребе тестирања, можете преузети унапред прикупљени траг file поиссон_сендрецв.сингле.стф за поиссон који се користи у овом документу и отворите га помоћу Интел Траце Анализер и Цоллецтор.
Тхе .стф file се отвара на страници са резимеом view, који представља опште информације о перформансама ваше апликације:НАПОМЕНА За више информација о функцијама Интел Траце Анализер и Цоллецтор погледајте Сазнајте више.
Анализирајте најактивније МПИ функције
Анализирајте понашање МПИ апликације, пронађите уска грла и идентификујте серијализацију да бисте пронашли начине за побољшање перформанси апликације.
- Са странице са резимеом отворите временску линију догађаја view кликом на Настави > Графикони > Временска линија догађаја за дубинску анализу најбољих МПИ функција.
Графикон приказује појединачне активности процеса током времена.
Рад на апликацији је итеративан, при чему се свака итерација састоји од рачунарског дела и МПИ комуникација. - Идентификујте једну итерацију на коју ћете се фокусирати и зумирајте је превлачењем миша преко потребног временског интервала:
Траг view приказује одељак унутар трага који сте изабрали. Графикон временске линије догађаја приказује догађаје који су били активни током изабране итерације.
- Хоризонталне траке представљају процесе са функцијама које се зову у овим процесима.
- Црне линије означавају поруке које се шаљу између процеса. Ове линије повезују процесе слања и пријема.
- Плаве линије представљају колективне операције, као што су операције емитовања или смањења.
- Пређите на Флат Проfile картицу (А) да бисте ближе погледали функције које се извршавају у временској тачки коју сте (изабрали на временској линији догађаја.
- Разгрупишите МПИ функције да бисте анализирали активност МПИ процеса у вашој апликацији.
Да бисте то урадили, кликните десним тастером миша на Алл Процессес > Гроуп МПИ (Б) у Флат Проfile и изаберите УнгроупМПИ. Ова операција открива појединачне МПИ позиве. - Анализирајте процесе који комуницирају са својим директним суседима користећи МПИ_Сендрецв на почетку итерације. Фор екampле:
- а. У сampДакле, МПИ_Сендрецв размена података има уско грло: процес не размењује податке са својим следећим суседом док се размена са претходним не заврши. Временски оквири догађаја view приказује ово уско грло као степениште.
- б. МПИ_Аллредуце на крају итерације поново синхронизује све процесе; зато овај блок има обрнути изглед степеништа.
- Идентификујте серијализацију користећи Фунцтион Проfile и Мессаге Проfile views.
- а. Отворите графиконе у исто време:
У Фунцтион Проfile графикон, отворите картицу Лоад Баланце. - Идите на мени Цхартс да отворите Мессаге Проfile.
- б. На картици Лоад Баланце проширите МПИ_Сендрецв и МПИ_Аллредуце. Балансирање оптерећења показује да се време проведено у МПИ_Сендрецв повећава са бројем процеса, док се време за МПИ_Аллредуце смањује.
- ц. Прегледајте Мессаге Проfile Графикон доле до доњег десног угла.
Кодирање блокова бојама указује да је порукама које путују са вишег на нижи ранг потребно пропорционално више времена, док поруке које путују са нижег ранга на виши ранг откривају слабу парно-непарну врсту обрасца:
- а. Отворите графиконе у исто време:
Резултати упоредне анализе показују да у апликацији не постоје сложени обрасци размене, размена се врши само са суседним процесима. Информације ће бити кључне за побољшање перформанси ваше апликације променом комуникације корак да бисте оптимизовали комуникациони модел апликације.
Идентификујте дисбалансиране комуникације
Гледајте своју апликацију под идеалним околностима и упоредите оригинални траг file са идеализованим да би се изоловале проблематичне интеракције.
- Креирајте идеализован file:
- а. Изаберите Напредно > Идеализација или кликните на
Дугме на траци са алаткама (Идеализација).
- б. Проверите параметре идеализације у дијалогу Идеализација (идеални траг file назив и временски опсег за конверзију).
- ц. Кликните на Старт да идеализујете свој траг.
- а. Изаберите Напредно > Идеализација или кликните на
- Упоредите оригинални траг са идеализованим трагом:
- а. Изаберите Напредно > Дијаграм неравнотеже или кликните на
(Дијаграм неравнотеже) дугме на траци са алаткама.
- б. У дијалогу Дијаграм неравнотеже кликните на Отвори друго File дугме, идите до идеализованог трага и изаберите га.
- ц. У прозору Дијаграм неравнотеже, кликните на дугме Тотал Моде и изаберите Бреакдовн Моде.
- а. Изаберите Напредно > Дијаграм неравнотеже или кликните на
Можете видети да је МПИ_Сендрецв функција која одузима највише времена. Тежина неравнотеже је приказана у
светле боје и чини око 10% за функцију МПИ_Сендрецв. Ово је време које процеси проводе чекајући једни друге.
Побољшајте перформансе апликације променом комуникација
- Побољшајте перформансе МПИ апликације променом блокирања у неблокирајућу комуникацију.
У свом коду замените серијски МПИ_Сендрцв са неблокирајућом комуникацијом: МПИ_Исенд и МПИ_Ирецв. Фор екampле: Оригинални исечак кода:
// гранична размена
празнина размена(пара* п, мрежа* гр){
инт и,ј;
МПИ_Статус статус_100, статус_200, статус_300, статус_400;
// послати доле први ред
МПИ_Сенд(гр->к_нев[1], гр->лцол+2, МПИ_ДОУБЛЕ, гр->довн, 100, МПИ_ЦОММ_ВОРЛД); МПИ_Рецв(гр->к_нев[гр->лров+1], гр->лцол+2, МПИ_ДОУБЛЕ, гр->уп, 100, МПИ_ЦОММ_ВОРЛД,
&статус_100);
// послати последњи ред
МПИ_Сенд(гр->к_нев[гр->лров], гр->лцол+2, МПИ_ДОУБЛЕ, гр->уп, 200, МПИ_ЦОММ_ВОРЛД);
МПИ_Рецв(гр->к_нев[0], гр->лцол+2, МПИ_ДОУБЛЕ, гр->довн, 200, МПИ_ЦОММ_ВОРЛД, &статус_200);
Користите поређење Интел Траце Анализер view да упореди серијализовану апликацију са ревидираном
// копирај леву колону у тмп низове
иф(гр->лефт != МПИ_ПРОЦ_НУЛЛ){
гр->к_нев[и][гр->лцол+1] = ригхт_цол[и]; ригхт_цол[и] = гр->к_нев[и][гр->лцол];
// послати право
МПИ_Сенд(десно_цол, гр->лров+2, МПИ_ДОУБЛЕ, гр->десно, 400, МПИ_ЦОММ_ВОРЛД); }
иф(гр->лефт != МПИ_ПРОЦ_НУЛЛ)
{
МПИ_Рецв(лево_цол, гр->лров+2, МПИ_ДОУБЛЕ, гр->лево, 400, МПИ_ЦОММ_ВОРЛД,&статус_400); фор(и=0; и< гр->лров+2; и++
{
гр->к_нев[и][0] = лефт_цол[и];
}
}
Ажуриран исечак кода
МПИ_Рекуест рек[7];
// послати доле први ред
МПИ_Исенд(гр->к_нев[1], гр->лцол+2, МПИ_ДОУБЛЕ, гр->довн, 100, МПИ_ЦОММ_ВОРЛД, &рек[0]);
МПИ_Ирецв(гр->к_нев[гр->лров+1], гр->лцол+2, МПИ_ДОУБЛЕ, гр->уп, 100, МПИ_ЦОММ_ВОРЛД, &рек[1]);
…..
МПИ_Ваиталл(7, рек, МПИ_СТАТУСЕС_ИГНОРЕ);
Једном исправљена, појединачна итерација ревидиране апликације ће изгледати као следећи примерampле: - Користите поређење Интел Траце Анализер view да упореди серијализовану апликацију са ревидираном. Упореди два трага уз помоћ Поређења View, иде на View > Упоредити. Тхе Цомпарисон View изгледа слично:
У Поређењу View, можете видети да коришћење неблокирајуће комуникације помаже у уклањању серијализације и смањењу времена комуникације процеса.
НАПОМЕНА За више информација о перформансама ваше апликације на нивоу чворова, погледајте документацију за одговарајуће алате: Интел® ВТуне™ Проfileр МПИ анализа кода и анализа Интел® МПИ апликација помоћу Интел® саветника.
Сазнајте више
Истражите следеће ресурсе за више информација о Интел Траце Анализер и Цоллецтор.
Обавештења и одрицање одговорности
- Интел технологије могу захтевати омогућену активацију хардвера, софтвера или услуге.
- Ниједан производ или компонента не могу бити апсолутно сигурни.
- Ваши трошкови и резултати могу да варирају.
- © Интел Цорпоратион. Интел, Интел лого и друге Интел ознаке су заштитни знаци Интел Цорпоратион или њених подружница. Друга имена и брендови могу се сматрати власништвом других.
- Овим документом се не даје никаква лиценца (изричита или имплицирана, естоппелом или на неки други начин) за било која права интелектуалне својине.
- Описани производи могу садржати дефекте у дизајну или грешке познате као грешке које могу довести до одступања производа од објављених спецификација. Тренутне окарактерисане грешке су доступне на захтев.
- Интел се одриче свих изричитих и имплицитних гаранција, укључујући, без ограничења, подразумеване гаранције за продају, прикладност за одређену сврху и некршење, као и сваку гаранцију која произилази из начина рада, начина пословања или употребе у трговини.
Документи / Ресурси
![]() |
интел Започните са Интел Траце Анализер и Цоллецтор [пдф] Упутство за кориснике Започните са Интел Траце Анализер и Цоллецтор, Започните са Интелом, Траце Анализер анд Цоллецтор, Цоллецтор |