Дипломная работа: Анализ эффективности MPI-программ
· Односторонние коммуникации и средства синхронизации для организации взаимодействия процессов через общую память (для эффективной работы на системах с непосредственным доступом процессоров к памяти других процессоров);
· Параллельные операции ввода-вывода (для эффективного использования существующих возможностей параллельного доступа многих процессоров к различным дисковым устройствам).
Вкратце о других моделях:
Модель неструктурированных нитей. Программа представляется как совокупность нитей (threads), способных выполняться параллельно и имеющих общее адресное пространство. Имеющиеся средства синхронизации нитей позволяют организовывать доступ к общим ресурсам. Многие системы программирования поддерживают эту модель: Win32 threads, POSIXthreads, Javathreads.
Модель параллелизма по данным. Основным её представителем является язык HPF [3]. В этой модели программист самостоятельно распределяет данные последовательной программы по процессорам. Далее последовательная программа преобразуется компилятором в параллельную, выполняющуюся либо в модели передачи сообщений, либо в модели с общей памятью. При этом каждый процессор производит вычисления только над теми данными, которые на него распределены.
Модель параллелизма по управлению. Эта модель возникла в применении к мультипроцессорам. Вместо терминов нитей предлагалось использовать специальные конструкции – параллельные циклы и параллельные секции. Создание, уничтожение нитей, распределение на них витков параллельных циклов или параллельных секций – всё это брал на себя компилятор. Стандартом для этой модели сейчас является интерфейс OpenMP [4].
Гибридная модель параллелизма по управлению с передачей сообщений . Программа представляет собой систему взаимодействующих MPI – процессов, каждый из которых программируется на OpenMP.
Модель параллелизма по данным и управлению – DVM (Distributed Virtual Machine, Distributed Virtual Memory)[5]. Эта модель была разработана в Институте прикладной математики им. М. В. Келдыша РАН.
3. Обзор средств отладки эффективности MPI-программ
При анализе MPI-программ могут возникать различные сложные ситуации, для анализа которых можно применить специально разработанные инструменты. Эти программы могут помочь в решении возникающих проблем. Большинство таких инструментов объединяет то, что они во время выполнения программы производят сбор информацию в трассу (описание событий), а затем предоставляют различные средства анализа и визуализации полученных данных.
Обычно для целей трассировки в исследуемую программу встраиваются "профилировочные" вызовы, которые фиксируют наступление определенных событий или продолжительность интервалов, и фиксируют эту информацию в журнале трассировки, передают ее online-анализатору или просто модифицируют собираемую статистику.
Можно выделить два основных подхода к анализу производительности:
· A. "Трассировка + Визуализация". Данный подход подразумевает два этапа:
o A1. Во время исполнения программы собирается "трасса", т.е. журнал о ходе работы программы.
o A2. Затем полученная трасса просматривается и анализируется.
· B. "Online-анализ". Поведение программы анализируется непосредственно в ходе ее выполнения.
Рис.1 Схема А. “Трассировка + Визуализация”.
3.1 Общие проблемы всех средств трассировки
1. Формат трасс не унифицирован и обычно ориентирован на конкретную библиотеку передачи сообщений.
2. Сбор информации - слабые возможности настройки фильтров событий (какие события и какую информацию включать в трассы). Нет возможности варьировать объем трассы.
3. Не учитывается эффекта замера - средство трассировки достаточно сильно изменяет поведение программы.
Проблемы визуализации.
1. Что показывать? Какая информация интересна и полезна для отладки эффективности MPI программы.
2. Как показывать? Рис.2 . Надо проводить обобщение собираемой информации. Просто вид всех событий может быть неинформативен.
3. Когда показывать? Важно показывать то, что полезно в данный момент для отладки эффективности, чтобы не загромождать пользователя излишней информацией.
Рис.2 VAMPIR.
3.2 Обзор основных средств отладки
Ниже будут кратко описаны некоторые основные средства отладки MPI-программ:
· AIMS -инструментарий, библиотека мониторинга и средства анализа