перейти к полному списку дипломных проектов
Ссылка на скачивания файла в формате .doc находится в конце странички
Существуют следующие составляющие потерянного времени:
потери из-за недостатка параллелизма, приводящего к дублированию вычислений на нескольких процессорах (недостаточный параллелизм)
2.1 AIMS - Automated Instrumentation and Monitoring System
Рис.3 AIMS. Результат подробного анализа запуска.
Vampir, VampirTrace
Рис.4. VAMPIR 4.0
Jumpshot
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бор трасс операций ввода-вывода
Рис 5. Возможности Pablo.
Paradyn
CXperf
Некоторые другие средства анализа поведения паралелльных программ:
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 Основные характеристики производительности
Возможность различать последовательные и параллельные участки программы позволяет при ее выполнении на многопроцессорной ЭВМ спрогнозировать время, которое потребуется для выполнения этой программы на однопроцессорной ЭВМ. Это время называется полезным временем. Тем самым появляется возможность вычислить главную характеристику эффективности параллельного выполнения - коэффициент эффективности, равный отношению полезного времени к общему времени использования процессоров, которое в свою очередь равно произведению времени выполнения программы на многопроцессорной ЭВМ (максимальное значение среди времен выполнения программы на всех используемых ею процессорах) на число используемых процессоров. Разница между общим временем использования процессоров и полезным временем представляет собой потерянное время. Если программист не удовлетворен коэффициентом эффективности выполнения своей программы, то он должен проанализировать составляющие части потерянного времени и причины их возникновения.
Существуют следующие составляющие потерянного времени:
потери из-за недостатка параллелизма, приводящего к дублированию вычислений на нескольких процессорах (недостаточный параллелизм). Дублирование вычислений осуществляется в двух случаях. Во-первых, последовательные участки программы выполняются всеми процессорами. Во-вторых, витки некоторых параллельных циклов могут быть по указанию программиста полностью или частично размножены.
потери из-за выполнения межпроцессорных обменов (коммуникации).
потери из-за простоев тех процессоров, на которых выполнение программы завершилось раньше, чем на остальных (простои).
Время выполнения межпроцессорных обменов, помимо времени пересылки данных с одного процессора на другой, может включать в себя и время, которое тратится из-за того, что операция приема сообщения на одном процессоре выдана раньше соответствующей операции посылки сообщения на другом процессоре. Такая ситуация называется рассинхронизацией процессоров и может быть вызвана разными причинами.
Поскольку потери, вызываемые рассинхронизацией процессоров, очень часто составляют подавляющую часть времени коммуникаций, то важно предоставить программисту информацию, позволяющую ему оценить эти потери и найти их причины.
скачать бесплатно Обзор существующих моделей параллельного программирования
Содержание дипломной работы
Поэтому главным недостатком выбора одной из них в качестве модели программирования является то, что такая модель непривычна и неудобна для программистов, разрабатывающих вычислительные программы
Создание, уничтожение нитей, распределение на них витков параллельных циклов или параллельных секций – всё это брал на себя компилятор
Когда показывать? Важно показывать то, что полезно в данный момент для отладки эффективности, чтобы не загромождать пользователя излишней информацией
Существуют следующие составляющие потерянного времени:
потери из-за недостатка параллелизма, приводящего к дублированию вычислений на нескольких процессорах (недостаточный параллелизм)
Этот интервал может включать в себя несколько интервалов следующего (первого) уровня
В последнем случае причина может быть очень простой – неверное задание матрицы процессоров при запуске программы или неверное распределение данных и вычислений
Он может ограничить, например, количество регулярно повторяющихся внешних итераций до одной - двух итераций
3 Устройство анализатора
Итак, анализатор состоит из трех основных компонент
В этом классе в качестве вспомогательного используется класс Processors
Первая используемая для этого функция – это функция Integrate()
000898 0 0
Выводы:
Отладка эффективности параллельных программ – процесс очень сложный и трудоемкий
Развитые средства анализа эффективности могут существенно ускорить этот процесс
Операции получения/ожидания/посылки-получения с блокировкой MPI_Recv, MPI_Wait, MPI_Waitany, MPI_Waitall, MPI_Waitsome, MPI_Probe, MPI_Sendrecv, MPI_Sendrecv_replace
темно-синий
5