Средства анализа производительности параллельных приложений
Лаборатория параллельных информационных технологий, НИВЦ МГУ
Содержание документа
- Введение
- Общие проблемы всех средств трассировки
- Терминология
- План изложения
- AIMS
- Vampir/VampirTrace
- Jumpshot
- Pablo
- Paradyn
- CXperf
- Другие средства
- Ссылки
Введение
На данной странице собрана информация о некоторых (наиболее известных) программных средствах, позволяющих анализировать поведение параллельных программ (с целью улучшения их производительности) посредством сбора информации о программе во время ее выполнения (трассировки).
Обычно для целей трассировки в исследуемую программу встраиваются "профилировочные" вызовы, которые фиксируют наступление определенных событий или продолжительность интервалов, и фиксируют эту информацию в журнале трассировки, передают ее онлайн-анализатору или просто модифицируют собираемую статистику.
Можно выделить два основных подхода к анализу производительности:
- A. "Трассировка + Визуализация". Данный подход подразумевает
два этапа:
- A1. Во время исполнения программы собирается "трасса", т.е. журнал о ходе работы программы.
- A2. Затем полученная трасса просматривается и анализируется.
- B. "Онлайн-анализ". Поведение программы анализируется непосредственно в ходе ее выполнения.
Общие проблемы всех средств трассировки
- Формат трасс не унифицирован и обычно ориентирован на конкретную библиотеку передачи сообщений.
- Сбор информации - слабые возможности настройки фильтров событий (какие события и какую информацию включать в трассы). Нет возможности варьировать объем трассы.
- Не учитывается эффекта замера - средство трассировки достаточно сильно изменяет поведение программы.
Терминология
Трасса (trace) - журнал событий какого-либо типа, произошедших во время выполнения программы.
"Проигрывание" трасс - эмуляция выполнения программы на основе собранной трассы.
Временной срез - состояние всех процессов программы в некоторый фиксированный момент времени.
План изложения
Информация о каждом средстве будет представлена по следующему плану (некоторые из пунктов могут быть опущены)
1. Название
2. URL (ссылка на Web-страницу продукта)
3. Текущая версия, к которой относится описание
4. Где разрабатывается? Коммерческий или бесплатно распространяемый продукт
5. Тип продукта (A,A1,A2,B - см. выше)
6. Поддерживаемые языки/библиотеки (обычно поддерживаются языки Fortran 77 и С, библиотеки передачи сообщений MPI и PVM).
7. Поддерживаемые аппаратные платформы и ОС
8. Функциональность трассировки. Описывается отдельно для средств типа A и В.
Для типа A:
- Сбор трасс
- Уровни детализации
- Формат трасс
- Тип трасс: журнал всех событий или статистика
9. Визуализация
- Процессы и События
- Тип и масштаб времени
- Взаимодействия
- Других объектов
- Связь с исходным кодом
11. Разное (совместимость с другими системами, проблемы в использовании и др.)
12. Планы разработчиков (развитие системы и т.д.)
AIMS - Automated Instrumentation and Monitoring System
URL | http://science.nas.nasa.gov/Software/AIMS/ |
---|---|
Где разрабатывается? | Некоммерческий продукт, разрабатывается в NASA Ames Research Center в рамках программы High Performance Computing and Communication Program. |
Тип | Тип А (трассировка + визуализация) |
Языки/Библиотеки | Fortran 77, HPF, С. Библиотеки передачи сообщений: MPI,PVM,NX. |
Платформы | IBM RS/6000 SP, рабочие станции Sun и SGI, Cray T3D/T3E. |
Функциональность трассировки |
Сбор трасс. Автоматизированное изменение исходного кода программы путем вставки специальных вызовов. Параллельно создается файл со статической информацией. Уровни детализации. Подпрограммы, вызовы процедур, процедуры различного типа (процедуры ввода-вывода, MPI процедуры т.п.) Формат трасс. Формат описан в документации. Ориентирован на передачу сообщений. Тип трассировки. События, статистика (может собираться без полной трассы). |
Визуализация |
|
Статистика | Суммарное время по замеряемым инструкциям или типам инструкций и количество срабатываний. |
Совместимость | Есть конверторы в форматы Pablo, ParaGraph и AVS/Explorer. |
Развитие | Исправление найденных ошибок в системе: проблема многих пользователей, ошибки с директивами "include". Улучшение системы генерации трасс с целью уменьшения накладных расходов. |
Vampir, VampirTrace
URL | http://www.pallas.de/pages/vampir.htm |
---|---|
Где разрабатывается? | Коммерческий продукт, разработка компании Pallas (Германия). |
Версии | VAMPIR 2.0 (X Window), VAMPIRtrace 1.5 |
Тип | Тип А (трассировка + визуализация). VampirTrace - система генерации трасс (A1), Vampir - система визуализации (A2). |
Языки/библиотеки | Языки - Fortran, C; передача сообщений в рамках MPI. |
Платформы |
|
Функциональность трассировки. | Сбор трасс. Линковка с VampirTrace - прослойкой между MPI и пользовательской программой. Уровни детализации. Cлабые вохможности настройки уровня детализации - только по подпрограммам. Возможна установка точек начала/конца трассировки. Тип трассировки. Только события (статистика собирается на этапе анализа трасс). |
Визуализация |
Процессы - параллельные линии, события - точки на них. Взаимодействия. Связь линий процессов, матрицы объемов и количества пересылок Другие объекты. Круговые диаграммы и статистические гистограммы. Поддерживается связь с исходным кодом. |
Статистика | Cуммарное время по замеряемым инструкциям или типам инструкций и количеству срабатываний; отображается на круговых диграммах и гистограммах. |
Jumpshot
URL | http://www-unix.mcs.anl.gov/mpi/mpich/ |
---|---|
Где разрабатывается? | Некоммерческое средство, разработано в Аргоннской национальной лаборатории. Распространяется вместе с пакетом MPICH. |
Версия | Jumpshot 1.0 (требуется Java 1.1 или выше) |
Тип | A2 (визуализация трасс) |
Языки/библиотеки | Передача сообщений: MPI. |
Платформа | Сбор трасс - любые платформы, где работает MPICH. Визуализация - Java. |
Функциональность трассировки |
Сбор трасс. Для получения трассы программу необходимо откомпилировать
с профилировочной версией библиотеки MPICH.
Формат трасс. CLOG. Тип трасс. Cобытия |
Визуализация |
Процессы - параллельные линии, цветом изображается тип функции. Взаимодействия. Связь линий процессов. Другие объекты. Объемы пересылок по времени, гистограммы накладных расходов по времени. |
Статистика | Суммарные времена работы различных типов процедур. |
Разное | jumpshot входит в состав MPICH начиная с версии 1.1.1 и заменяет собой Tcl/Tk-программы upshot/nupshot, входившие в состав MPICH более ранних версий. |
Pablo Performance Analysis Toolkit Software
Пакет состоит из набора средств:
- SvPablo - визуализатор статистической информации (X Window).
- SDDF - библиотека для записи трасс и набор средств для работы с SDDF файлами
- Trace Library and Extensions - библиотека для трассировки
- I/O Analysis - статистика операций ввода-вывода
- MPI I/O Analysis - статистика MPI I/O
- HDF (Hierarchical Data Format) Analysis - анализ использования HDF операций
- Analysis GUI - библиотека средств для просмотра SDDF трасс
- IO Benchmarks - cбор трасс операций ввода-вывода
URL | http://vibes.cs.uiuc.edu/Software/Pablo/pablo.htm |
---|---|
Где разрабатывается? |
Некоммерческий пакет, разработан в университете шт. Иллинойс. |
Языки/библиотеки | ANSI C, Fortran 77, Fortran 90 (с ограничениями), HPF (Portland Group). |
Платформы |
|
Функциональность трассировки. |
Тип трасс. Статистика, события. |
Визуализация |
SvPablo. Основа визуализации - связь с исходным кодом. Представляет цветом число вызовов и общее время фрагмента. Analysis GUI. Библиотека подпрограмм для визуализации трасс в формате SDDF |
Статистика |
Развернутые средства статистики, в виде набора пакетов.
|
Совместимость | Есть конверторы из разных форматов в SDDF - IBM VT Trace, AIMS. |
Развитие | Поддержка HPF, Fortran 90. Поддержка MPI 2.0. |
Paradyn
URL | http://www.cs.wisc.edu/paradyn |
---|---|
Где разрабатывается? | Некоммерческое средство, разрабатывается в University of Wisconsin, |
Версия | 2.1 |
Тип | B (онлайн-анализ) |
Языки/библиотеки | Fortran, Fortran 90, C, C++: MPI, PVM; HPF |
Платформы |
|
Функциональность трассировки | Динамическая настраиваемая инструментовка программ во время выполнения. В код программы во время ее выполнения динамической вставляются и убираются вызовы трассирующих процедур. Все делается автоматически, в результате значительно уменьшаются накладные расходы. Начинает с крупных блоков, затем постепенно детализирует узкие места (для этого программа должна достаточно долго работать) |
Визуализация | В основе визуализации лежат два вектора
На этих векторах образуется матрица: ее элементы либо скаляр (значение, среднее, минимум, максимум и т.д.), либо временная диаграмма (история изменения характеристики). Все характеристики отображаются во время исполнения программы. |
Проблемы | Согласно [1], есть проблемы с масштабируемостью. На их программе при малом числе процессоров (меньше 12) все выглядело нормально, а на большем числе процессоров - более чем 80% увеличение времени. Так же сейчас самой системой занимается очень много памяти. |
Развитие | Устранение проблем масштабируемости, уменьшение требуемой памяти, поддержка других платформ. |
CXperf
URL | HP Performance Analysis Tools - http://www.hp.com/esy/lang/tools/Performance/ |
---|---|
Где разрабатывается? | Коммерческое средство, разработка Hewlett-Packard. |
Тип | A (трассировка + визуализация) |
Языки/библиотеки | HP ANSI C (c89), ANSI C++ (aCC), Fortran 90 (f90), HP Parallel 32-bit Fortran 77 |
Платформы | Сервера HP на базе PA-RISC |
Функциональность трассировки | Сбор и настройка трасс осуществляется с помощью указания специальных профилировочных опций компилятора. |
Визуализация | 3D-визуализация, связь с кодом программы, масштабирование, сопоставительный анализ, графы вызовов. |
Другие средства
Некоторые другие средства анализа поведения паралелльных программ, не рассмотренные подробно в данном обзоре:
- XMPI - графическая среда запуска и отладки MPI-программ, входит в состав пакета LAM.
- HP Pak - набор средств от Hewlett-Packard для анализа поведения многопоточных программ.
- TAU (Tuning and Analysis Utilities) - некоммерческий набор утилит анализа производительности программ, написанных на языке C++ и его параллельных вариантах. Включает пакет профилировки TAU Portable Profiling.
- Carnival
- Chiron - средство для оценки производительности многопроцессорных систем с общей памятью.
- Pangaea
- GUARD - параллельный отладчик.
- MPP-Apprentice - средство в составе Message-Passing Toolkit от SGI.
- ParaGraph
- PGPVM2
- TraceInvader
- XPVM - графическое средство мониторинга PVM-программ.
Смотрите также:
- Review of Performance Analysis Tools for MPI Parallel Programs (обзор средств анализа производительность MPI-программ)
- Execution and Performance Analyzers - большой список средств анализа производительности и отладчиков для параллельных программ.
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ