Дипломная работа: Анализ эффективности MPI-программ
Рис 5. Возможности Pablo.
Paradyn
URL | http://www.cs.wisc.edu/paradyn |
Где разрабатывается? | Некоммерческое средство, разрабатывается в University of Wisconsin, |
Версия | 4.0 |
Тип | B (онлайн-анализ) |
Языки/библиотеки | Fortran, Fortran 90, C, C++: MPI, PVM; HPF |
Платформы |
· Sun SPARC (только PVM) · Windows NT на x86 · IBM RS/6000 (AIX 4.1 или старше) |
Функциональность трассировки | Динамическая настраиваемая инструментовка программ во время выполнения. В код программы во время ее выполнения динамической вставляются и убираются вызовы трассирующих процедур. Все делается автоматически, в результате значительно уменьшаются накладные расходы. Начинает с крупных блоков, затем постепенно детализирует узкие места (для этого программа должна достаточно долго работать) |
Визуализация |
В основе визуализации лежат два вектора · измеряемые параметры производительности: процессорное время, различные накладные расходы, ожидания, времена пересылок и ввода-вывода и т.д. · компоненты программы/вычислительной системы, к которым относятся параметры: процедуры, процессоры, диски, каналы передачи сообщений, барьеры и т.д. На этих векторах образуется матрица: ее элементы либо скаляр (значение, среднее, минимум, максимум и т.д.), либо временная диаграмма (история изменения характеристики). Все характеристики отображаются во время исполнения программы. |
Проблемы | Есть проблемы с масштабируемостью. На программе при малом числе процессоров (меньше 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 Основные характеристики производительности
Возможность различать последовательные и параллельные участки программы позволяет при ее выполнении на многопроцессорной ЭВМ спрогнозировать время, которое потребуется для выполнения этой программы на однопроцессорной ЭВМ. Это время называется полезным временем . Тем самым появляется возможность вычислить главную характеристику эффективности параллельного выполнения - коэффициент эффективности , равный отношению полезного времени к общему времени использования процессоров, которое в свою очередь равно произведению времени выполнения программы на многопроцессорной ЭВМ (максимальное значение среди времен выполнения программы на всех используемых ею процессорах) на число используемых процессоров . Разница между общим временемиспользования процессоров и полезным временем представляет собой потерянное время . Если программист не удовлетворен коэффициентом эффективности выполнения своей программы, то он должен проанализировать составляющие части потерянного времени и причины их возникновения.
Существуют следующие составляющие потерянного времени:
· потери из-за недостатка параллелизма, приводящего к дублированию вычислений на нескольких процессорах (недостаточный параллелизм ). Дублирование вычислений осуществляется в двух случаях. Во-первых, последовательные участки программы выполняются всеми процессорами. Во-вторых, витки некоторых параллельных циклов могут быть по указанию программиста полностью или частично размножены.
· потери из-за выполнения межпроцессорных обменов (коммуникации ).
· потери из-за простоев тех процессоров, на которых выполнение программы завершилось раньше, чем на остальных (простои ).
Время выполнения межпроцессорных обменов, помимо времени пересылки данных с одного процессора на другой, может включать в себя и время, которое тратится из-за того, что операция приема сообщения на одном процессоре выдана раньше соответствующей операции посылки сообщения на другом процессоре. Такая ситуация называется рассинхронизацией процессоров и может быть вызвана разными причинами.