Средства Intel для разработки программного обеспечения

Aplication Performance Snapshot

Aplication Performance Snapshot представляет из себя инструмент для профилирования приложений. Данное приложение входит в состав Intel Parallel Studio, которая установлена на кластере HybriLIT.

Aplication Performance Snapshot позволяет анализировать основные параметры, такие как использование памяти, объем пересылок, время работы каждого процесса, задержки в работе и т.д.

Для профилирования приложения необходимо:

  1. Подключить модуль, обеспечивающий поддержку переменных окружения для работы с Intel Parallel Studio:

  1. Скомпилировать приложение при помощи подключенной библиотеки:

для MPI-программы

для OpenMP-программы

или

для последовательной программы
где name_app.cpp — название компилируемого файла.

  1. Запустить исполняемый файл (по умолчанию a.out ) с ключом — aps, или при помощи script-файла:

для MPI-программы

для OpenMP-программы

для последовательной программы

  1. Все полученные профилировщиком данные будет размещены в папке aps_result_[дата запуска]. Для отображения этих данных сгенерируйте отчет в формате HTML (рис. 1, рис. 2) используя команду:

Рис. 1. Скриншот output-файла Aplication Perfomance Snapshot для MPI приложения (нажмите на картинку, для перехода на страницу отчета)

 

Рис. 2. Скриншот output-файла Aplication Perfomance Snapshot для OpenMP приложения (нажмите на картинку, для перехода на страницу отчета)

 

Intel Trace Analyzer and Collector

Intel Trace Analyzer and Collector предназначен для трассировки MPI-процессов.

Основные задачи:

  • Визуализация поведения параллельного приложения;
  • Оценка профилей статистики и балансировки нагрузки;
  • Анализ производительности подпрограмм или блоков кода;
  • Детализация модели обмена, параметров и данных о производительности;
  • Определение горячих точек связи;
  • Уменьшение времени выполнения и повышение эффективности приложения.

Для запуска приложения нужно повторить пункты 1-2 из раздела MPI Performance Snapshot. Затем запустить программу на счет с ключем –trace. Ниже показан пример используемого скрипта:

Для просмотра результатов нужно воспользоваться графической оболочкой ITAC GUI  с помощью команды

В результате будет открыто приложение, в которое необходимо загрузить файл (по умолчанию a.out.stf). Пример работы трассировщика ITAC  представлен  на Рис.3.

В верхней части Рис.3. отображается распределение вычислительной нагрузки на MPI-процессах и межпроцессорные коммуникации (шкала Event Timeline), числовые значения отображаются в нижней части рисунка.

itac1

Рис. 3.  Пример коммуникации в MPI-приложении.

На графике Message Profile можно оценить, какие именно процессы обмениваются сообщениями и какие коммуникации наиболее затратные по времени (Рис. 4 ).

itac2

Рис. 4. Обмены между процессами в MPI приложении.

В пункте Collective operations можно построить таблицу с временными  затратами на коллективные MPI-операции (рис. 5).

Collective_operations-2

Рис. 5. Таблица временных затрат на коллективные операции в MPI-приложении.

Заключение
Из представленного обзора инструментов профилирования и трассировки MPI-приложений можно сделать следующие выводы:

  • MPI Performance Snapshot —  предназначен для  быстрой оценки эффективности, имеет минимальные накладные расходы, обеспечивает профилировку до 32000 MPI процессов, позволяет получить быструю оценку дисбаланса MPI и OpenMP, и получить общую оценку производительности (GFLOPS).
  • Intel Trace Analyzer and Collector —  позволяет провести детальное исследование MPI-приложения, выявить шаблоны коммуникации, локализовать конкретные «узкие» места программы.