46798 (588445), страница 2
Текст из файла (страница 2)
3.1 Общие проблемы всех средств трассировки
-
Формат трасс не унифицирован и обычно ориентирован на конкретную библиотеку передачи сообщений.
-
Сбор информации - слабые возможности настройки фильтров событий (какие события и какую информацию включать в трассы). Нет возможности варьировать объем трассы.
-
Не учитывается эффекта замера - средство трассировки достаточно сильно изменяет поведение программы.
Проблемы визуализации.
-
Что показывать? Какая информация интересна и полезна для отладки эффективности MPI программы.
-
Как показывать? Рис.2 . Надо проводить обобщение собираемой информации. Просто вид всех событий может быть неинформативен.
-
Когда показывать? Важно показывать то, что полезно в данный момент для отладки эффективности, чтобы не загромождать пользователя излишней информацией.
Рис.2 VAMPIR.
3.2 Обзор основных средств отладки
Ниже будут кратко описаны некоторые основные средства отладки MPI-программ:
-
AIMS -инструментарий, библиотека мониторинга и средства анализа
-
MPE -библиотека сохранения Log-файлов средство визуализации Nupshot
-
Pablo - библиотека мониторинга и средства анализа
-
Paradyn – динамический инструментарий и ран тайм библиотека
-
SvPablo – интегрированный инструментарий, библиотека мониторинга, средства анализа
-
VAMPIRtrace - библиотека мониторинга and VAMPIR – средство визуализации
3.2.1 AIMS - Automated Instrumentation and Monitoring System
Место разработки: | Некоммерческий продукт, разрабатывается в 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 процедуры т.п.) Формат трасс. Формат описан в[7]. Ориентирован на передачу сообщений. Тип трассировки. События, статистика (может собираться без полной трассы). |
Визуализация | Процессы - параллельные линии. События изображаются точками на этих линиях. Особым образом изображаются накладные расходы: времена ожидания, блокировка. Есть возможность "проигрывания" трасс. Время - реальное (астрономическое) Связь линий процессов линиями, обозначающими взаимодействия (передача сообщений, глобальные операции). Диаграммы взаимодействия процессов, временные срезы, история вызовов и трассируемых блоков. Поддерживается связь с исходным кодом. |
Статистика | Суммарное время по замеряемым инструкциям или типам инструкций и количество срабатываний. |
Рис.3 AIMS. Результат подробного анализа запуска.
Vampir, VampirTrace
URL | http://www.pallas.de/pages/vampir.htm |
Где разрабатывается? | Коммерческий продукт, разработка компании Pallas (Германия). |
Версии | VAMPIR 4.0 (X Window), VAMPIRtrace 4.0 |
Тип | Тип А (трассировка + визуализация). VampirTrace - система генерации трасс (A1), Vampir - система визуализации (A2). |
Языки/библиотеки | Языки - Fortran, C; передача сообщений в рамках MPI. |
Платформы |
|
Функциональность трассировки. | Сбор трасс. Линковка с VampirTrace - прослойкой между MPI и пользовательской программой. Уровни детализации. Cлабые вохможности настройки уровня детализации - только по подпрограммам. Возможна установка точек начала/конца трассировки. Тип трассировки. Только события (статистика собирается на этапе анализа трасс). |
Визуализация | Процессы - параллельные линии, события - точки на них. Взаимодействия. Связь линий процессов, матрицы объемов и количества пересылок Другие объекты. Круговые диаграммы и статистические гистограммы. Поддерживается связь с исходным кодом. |
Статистика | Cуммарное время по замеряемым инструкциям или типам инструкций и количеству срабатываний; отображается на круговых диаграммах и гистограммах. |
Рис.4. VAMPIR 4.0
Jumpshot
URL | http://www-unix.mcs.anl.gov/mpi/www/www1/Jumpshot.html |
Где разрабатывается? | Некоммерческое средство, разработано в Аргоннской национальной лаборатории. Распространяется вместе с пакетом MPICH. |
Версия | Jumpshot 1.0 (требуется Java 1.1 или выше) |
Тип | A2 (визуализация трасс) |
Языки/библиотеки | Передача сообщений: MPI. |
Платформа | Сбор трасс - любые платформы, где работает MPICH. Визуализация - Java. |
Функциональность трассировки | Сбор трасс. Для получения трассы программу необходимо откомпилировать с профилировочной версией библиотеки MPICH. Формат трасс. CLOG. Тип трасс. События |
Визуализация | Процессы - параллельные линии, цветом изображается тип функции. Взаимодействия. Связь линий процессов. Другие объекты. Объемы пересылок по времени, гистограммы накладных расходов по времени. |
Статистика | Суммарные времена работы различных типов процедур. |
Разное | 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). |
Платформы |
|
Функциональность трассировки. | Уровни детализации. Hа уровне интерфейсов, можно делать ручную разметку с использованием svPablo. Формат трасс - SDDF Тип трасс. Статистика, события. |
Визуализация | SvPablo. Основа визуализации - связь с исходным кодом. Представляет цветом число вызовов и общее время фрагмента. Analysis GUI. Библиотека подпрограмм для визуализации трасс в формате SDDF |
Статистика | Развернутые средства статистики, в виде набора пакетов.
|
Совместимость | Есть конверторы из разных форматов в SDDF – IBM VT Trace, AIMS. |
Развитие | Поддержка HPF, Fortran 90. Поддержка MPI 2.0. |
Рис 5. Возможности Pablo.
Paradyn
URL | http://www.cs.wisc.edu/paradyn |
Где разрабатывается? | Некоммерческое средство, разрабатывается в University of Wisconsin, |
Версия | 4.0 |
Тип | B (онлайн-анализ) |
Языки/библиотеки | Fortran, Fortran 90, C, C++: MPI, PVM; HPF |
Платформы |
|
Функциональность трассировки | Динамическая настраиваемая инструментовка программ во время выполнения. В код программы во время ее выполнения динамической вставляются и убираются вызовы трассирующих процедур. Все делается автоматически, в результате значительно уменьшаются накладные расходы. Начинает с крупных блоков, затем постепенно детализирует узкие места (для этого программа должна достаточно долго работать) |
Визуализация | В основе визуализации лежат два вектора
На этих векторах образуется матрица: ее элементы либо скаляр (значение, среднее, минимум, максимум и т.д.), либо временная диаграмма (история изменения характеристики). Все характеристики отображаются во время исполнения программы. |
Проблемы | Есть проблемы с масштабируемостью. На программе при малом числе процессоров (меньше 12) все выглядело нормально, а на большем числе процессоров - более чем 80% увеличение времени. Так же сейчас самой системой занимается очень много памяти. |
Развитие | Устранение проблем масштабируемости, уменьшение требуемой памяти, поддержка других платформ. |
CXperf
URL | HP Performance Analysis Tools - http://www.hp.com/esy/lang/tools/Performance/ CXperf User's Guide |
Где разрабатывается? | Коммерческое средство, разработка 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-программ.
Подробнее можно прочитать в [8].
4. Характеристики и методика отладки DVM-программ
4.1 Основные характеристики производительности
Возможность различать последовательные и параллельные участки программы позволяет при ее выполнении на многопроцессорной ЭВМ спрогнозировать время, которое потребуется для выполнения этой программы на однопроцессорной ЭВМ. Это время называется полезным временем. Тем самым появляется возможность вычислить главную характеристику эффективности параллельного выполнения - коэффициент эффективности, равный отношению полезного времени к общему времени использования процессоров, которое в свою очередь равно произведению времени выполнения программы на многопроцессорной ЭВМ (максимальное значение среди времен выполнения программы на всех используемых ею процессорах) на число используемых процессоров. Разница между общим временем использования процессоров и полезным временем представляет собой потерянное время. Если программист не удовлетворен коэффициентом эффективности выполнения своей программы, то он должен проанализировать составляющие части потерянного времени и причины их возникновения.