Хабраиндекс
630,51
19 декабря 2012 в 17:05

7 новых возможностей Intel® VTune Amplifier XE



VTune Amplifier XE давно известен пользователям своими возможностями глубокого анализа производительности ПО, как на уровне приложения, так и на микроархитектурном уровне.

Инструмент не стоит на месте и активно развивается, улучшаясь и обрастая новым функционалом. В этом посте приведён краткий обзор новых «фич», появившихся как в вышедшем в сентябре VTune Amplifier XE 2013, так и совсем недавно, в последующих обновлениях:

  • Анализ циклов
  • Текстовый поиск
  • Анализ энергоэффективности
  • EBS анализ со стеками
  • Профилировка Java приложений
  • API для пользовательских задач
  • Улучшения командного интерфейса


Анализ циклов


Как известно, оптимизация высокопроизводительных вычислений часто строится вокруг циклов – здесь и распараллеливание, и перераспределение данных для оптимального использования кэша, и векторизация. VTune Amplifier XE 2013 update 3 может определять, какие «горячие точки» на самом деле – «горячие циклы». Теперь пользователь может сконцентрироваться на их оптимизации, а не на поиске циклов по исходному коду, плюс оценить эффект от оптимизации каждого конкретного цикла от запуска к запуску.



Текстовый поиск


Результаты профилировки VTune Amplifier XE могут быть довольно объёмными, и бывает трудно сразу найти интересующую вас функцию/модуль/объект синхронизации и т.д.
Теперь пользователи наконец-то могут использовать простой текстовый поиск во всех основных окнах: bottom-up, top-down, source view, assembly view.



Анализ энергоэффективности


Энергоэффективность приложений приобретает всё большее значение. Ведь в растратах энергии повинна не только аппаратная часть, но и ПО. VTune Amplifier XE 2013 представил два новых типа анализа в этой области (пока доступы только для Linux).

Анализ CPU Frequency позволяет отследить изменение тактовой частоты во время исполнения программы на всех ядрах. Это даёт оценку активного энергопотребления, с тем, чтобы потом играть технологиями изменения частоты: Turbo Boost, SpeedStep и т.п.



Анализ CPU Sleep States даёт оценки пассивного энергопотребления – перехода по C-state-ам. Здесь отслеживаются “wake-up”-ы – “пробуждения”. Переход в более глубокий C-state и выход из него имеют затраты, поэтому если такое случается слишком часто, имеет смысл подумать об изменении ситуации. Анализ CPU Sleep States показывает частоту переходов по состояниям, статистику пребывания в разных состояниях, а главное объекты, вызывающие нежелательные «пробуждения» — например, таймеры:



EBS анализ со стеками


VTune Amplifier XE использует два основных подхода к профилированию. Первый основан на бинарной инструментации анализируемого процесса и называется «анализом пользовательского уровня». Второй подход (EBS анализ) работает не с процессом, а с модулем PMU в процессоре, что позволяет профилировать не только пользовательские приложения, но и операционную систему, и драйвера. Кроме того, так можно находить «микроархитектурные» проблемы софта.

До выхода 2013-й версии EBS анализ позволял найти функции и их код, но не стеки вызовов. Это было неудобно, если, например, «горячей точкой» оказывалась системная функция – найти ответственный за это пользовательский код было нелегко. С 2013-й версии анализы, основанные на EBS, предоставляют ещё и стеки вызовов. Теперь вы сможете проследить путь от системных вызовов и драйверов до вашего приложения, если оно к этому причастно.



Ещё одним приятным моментом является статистический подсчёт количества вызовов функций. Теперь можно не только увидеть суммарное время, потраченное на исполнение функции, но и оценить, каким образом оно формируется – часто, но по малу, или наоборот.



Профилировка Java приложений


Начиная с 2013-й версии VTune Amplifier XE поддерживает профилировку Java приложений. Это может быть особенно полезно для анализа «mixed» кода, совмещающего Java и вызовы «нативных» модулей (например, для выполнения тяжёлых вычислений). Кроме того, профилировщик позволяет обнаружить микроархитектурные проблемы в Java коде, например, неэффективное использование кэша. Более подробно читайте в этой статье (на английском).



API для пользовательских задач


Многие параллельные приложения строятся на «задачах» — небольших логических элементах работы, исполняющихся потоками. На задачах строится, например, библиотека Intel® Threading Building Blocks.

API, предоставляемый VTune Amplifier XE (__itt API) недавно пополнился средством разметки таких задач:

void do_foo(double seconds); 
DWORD WINAPI work (void *pArg) {
	 __itt_task_begin (domain, __itt_null, __itt_null, UserSubTask);
	do_foo (1);		 	 
	__itt_task_end (domain);
	return 0;
}

int main() {
	int i = 0;
	HANDLE hThread [NUM_THREADS];
	
	__itt_task_begin (domain, __itt_null, __itt_null, UserTask);
	do_foo (0.3);
	
	for (i = 0; i < NUM_THREADS; i++)
	{
		hThread[i] = CreateThread ( NULL, 0, work, (void*)i, 0, 0 );
	}
	WaitForMultipleObjects (NUM_THREADS, hThread, TRUE, INFINITE );
	__itt_task_end (domain);
	
	return 0;
}

Теперь пользовательские задачи можно отслеживать через grouping “Task Type / Function / Call Stack" и окно Tasks:





Подробно про task API читайте в этом посте.

Улучшения командного интерфейса


VTune Amplifier XE – это не только ценный мех красивый GUI, но и развитый командный интерфейс. Если вы просматриваете результаты профилировки в командной строке (или такой вывод используется в автоматизированном тестировании), вы могли заметить, что иногда не всё умещается в окно терминала и форматирование «съезжает». В 2013-й версии появился параметр report-width, ограничивающий ширину распечатываемых результатов, чтобы всё уместилось:

$ amplxe-cl -R hotspots -report-width=100 -r r004cc

Для любителей GNU gprof появился новый формат представления результатов, в формате gprof:

$ amplxe-cl -report gprof-cc -r r001hs

При создании собственного EBS-анализа с нужным вам набором «эвентов» может потребоваться запустить его на другой машине. Если на ней нет графического интерфейса, можно скопировать командную строку. До недавнего времени вместе с таким нестандартным анализом приходилось копировать файл конфигурации, что требовало дополнительных действий, разбираться как использовать этот файл и т.п.

В последних обновлениях VTune Amplifier XE это стало делать проще – все параметры содержатся в командной строке. Просто нажимаете “Command line” в GUI и копируете сформированную строку на удалённую машину. Не нужно никаких дополнительных файлов.



Резюме


Все семь новых возможностей, описанные в посте, доступны в последней версии Intel® VTune Amplifier XE 2013 update 3 – качайте, пробуйте, наслаждайтесь. Триальную версию можно скачать с официального сайта.
+15
7334
37
krogozh 9,5

Комментарии (2)

+3
darkdimius, #
Возможно, все же стоит указать, что для некоммерческих целей под Linux тут можно получить лицензию на год на всю Intel® Parallel Studio XE 2013.
0
krogozh, #
Совершенно верно, можно. А ещё недавно тут стало можно запросить бесплатную лицензию для обучения студентов — простую некоммерческую можно использовать лишь индивидуально.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.