Для студентов МГУ им. Ломоносова по предмету Дипломы и ВКРОтладка эффективности OpenMP-программОтладка эффективности OpenMP-программ
2021-09-13СтудИзба

ВКР: Отладка эффективности OpenMP-программ

Описание

Московский государственный университет им. М. В. Ломоносова

Факультет вычислительной математики и кибернетики

Кафедра системного программирования

Дипломная работа

Отладка эффективности OpenMP-программ

Научный руководитель

профессор, д.ф.-м. н.

Крюков Виктор Алексеевич

Содержание

Аннотация. 3

Введение. 4

1. Постановка задачи. 6

2. Обзор существующих решений. 7

2.1. Intel Thread Profiler 8

2.2. PGPROF. 10

2.3. ompP. 11

2.4. KOJAK.. 12

2.5. APART. 13

2.6. Анализатор DVM. 14

3. Сбор данных и анализ эффективности. 15

3.1. Используемые термины.. 16

3.2. Накопление трассы.. 17

3.4. Сбор статистики. 19

3.5. Соглашение об именовании файлов. 20

3.6. Анализ. 20

3.7. Анализ MPI/OpenMP и DVM/OpenMP программ.. 22

3.8. Получение читаемой трассы.. 22

3.9. Указания для правильной расстановки интервалов. 22

4. Особенности реализации. 24

4.1. Трассировщик. 24

4.2. Анализатор. 25

5. Замедление проинструментированных программ и расчет требуемых ресурсов. 26

6. Дальнейшее развитие. 27

Заключение. 28

Литература. 29

Приложение А. Описание используемых функций инструментации и контекстных строк. 30

Приложение Б. Формат промежуточной трассы.. 32

Приложение В. Формат протокола анализатора. 33

Приложение Г. Формат читаемой трассы.. 34

Приложение Д. Ключи анализатора. 35

Приложение Е. Пример работы трассировщика и анализатора. 36

Аннотация.

Целью данной дипломной работы является создание набора инструментов для анализа и отладки эффективности программ в гибридной модели DVM/OpenMP и MPI/OpenMP. Выдаваемые характеристики эффективности должны соответствовать характеристикам анализатора эффективности системы DVM.

Практическим результатом дипломной работы является разработка трассировщика и анализатора эффективности OpenMP-программ.

Введение

В современных условиях необходимость обработки все больших и больших объемов информации постоянно ставит перед программистами задачи повышения производительности разрабатываемых ими систем. Поскольку сейчас широкое распространение получили многоядерные процессоры, практически в любой системе используются SMP-элементы [14]. Стандартом программирования для компьютеров с SMP архитектурой стал OpenMP [4]. Применение MPI в рамках данной архитектуры не очень эффективно ввиду использования сообщений как единственного средства взаимодействия между процессами

За счет идеи "инкрементального распараллеливания" OpenMP идеально подходит для разработчиков, желающих быстро распараллелить свои вычислительные программы с большими параллельными циклами. Разработчик не создает новую параллельную программу, а просто добавляет в текст последовательной программы OpenMP-директивы.

Стоит отметить некоторые особенности OpenMP-программ:

  1. OpenMP - достаточно гибкий механизм, предоставляющий разработчику большие возможности контроля над поведением параллельного приложения.
  2. OpenMP-программа на однопроцессорной платформе может быть использована в качестве последовательной программы, т.е. нет необходимости поддерживать последовательную и параллельную версии. Директивы OpenMP игнорируются последовательным компилятором, а для вызова процедур OpenMP могут быть подставлены заглушки (stubs), текст которых приведен в спецификациях.
  3. Одним из достоинств OpenMP его разработчики считают поддержку так называемых "orphan" (оторванных) директив, то есть директивы синхронизации и распределения работы могут не входить непосредственно в лексический контекст параллельной области.

Пользователь разрабатывает параллельную программу для ускорения решения существующих задач, для возможности решения тех задач, которые из-за ограничений по времени или памяти не может решать сегодня.

Его может интересовать возможность решения вообще, время решения. Если думать о масштабировании (решении больших задач на большем числе процессоров), то его интересует коэффициент эффективности. Когда эти характеристики его не устраивают, он вынужден анализировать и отлаживать эффективность.

Для анализа эффективности программ обычно используется трассировка программ. Для целей трассировки в исследуемую программу встраиваются "профилировочные" вызовы, которые фиксируют наступление определенных событий или продолжительность интервалов, и фиксируют эту информацию в журнале трассировки, передают ее онлайн-анализатору или просто модифицируют собираемую статистику.

Существуют общие проблемы всех средств трассировки:

  1. Формат трасс не унифицирован.
  2. Сбор информации - слабые возможности настройки фильтров событий (какие события и какую информацию включать в трассы). Размер трассы может оказаться неприемлемо большим.
  3. Не учитывается эффект замера - средство трассировки может достаточно сильно изменять поведение программы.

Центральная идея ускорения последовательных приложений достаточно проста. Необходимо выявить участки кода, в которых приложение проводит основную часть времени и оптимизировать их. Известен эвристический закон "10/90", утверждающий, что приложение проводит 90% времени работы в 10% кода. Таким образом, за счет оптимизации именно этих 10% кода можно добиться значительного повышения производительности. Как раз для поиска таких узких мест используются специальные средства, называемые профилировщиками.

Под понятием профилирование обычно понимается процесс анализа производительности приложения и учета потребляемых им ресурсов. Тем самым, профилировщик - это инструмент, при помощи которого осуществляется профилирование.

Профилировщики исследуют поведение программы в процессе ее выполнения. В частности, собирается такая информация, как частота вызовов функций, продолжительность их работы, число потоков, время ожидания - любая информация, способная помочь при оптимизации производительности. В числе приемов, используемых профилировщиками для сбора информации - инструментация кода, аппаратные прерывания, внедрение счетчиков производительности и многие другие. Выходной информацией профилировщика является трасса - список событий, произошедших в приложении. После получения трассы профилировщик обрабатывает собранную информацию и строит профиль (протокол) приложения - статистическую сводку о работе приложения.

1. Постановка задачи

Задача заключается в разработке инструментов для анализа и отладки эффективности OpenMP-программ и программ использующих гибридные модели MPI/OpenMP и DVM/OpenMP. Использовать доступные инструменты (ITP и др.) на узлах кластера проблематично. Кроме этого планируется объединение существующих в DVM-системе средств отладки эффективности DVM и MPI со средствами отладки эффективности OpenMP. Поэтому необходимо разработать средства для отладки OpenMP-программ совместимые на уровне выдаваемых характеристик с DVM-системой.

В имеющихся в DVM-системе средствах отладки эффективности DVM и MPI были

использованы два метода сбора характеристик - накопление статистики (для DVM‑программ) и накопление трассы (для MPI-программ). При первом подходе не требуется дополнительного дискового пространства, но при этом нет такой детальности, как при накоплении полной трассы.

Для реализации решено использовать сокращенную трассу со статистикой, в которой отражаются события, но для повторяющихся событий статистика вычисляется во время выполнения программы, что существенно сокращает размер трассы.

2. Обзор существующих решений

Существует 2 основных подхода к анализу программ – sample-based profiling (sampling) и instrumentation-based profiling.

Самплинг – код программы не меняется. Производится сбор образцов (samples) – это может быть стек вызовов, аппаратные счетчики производительности, системные вызовы, промахи кеша и др. Sampling не позволяет анализировать конкретные события в программе. Существует много инструментов для семплинга, например, Visual Studio Team Suite Profilers, CLRProfiler, PerfMon, ETWB, OProfile [11], XProf, но в данном обзоре средства для sample-based profiling не рассматриваются.

Второй подход подразумевает вставку в программу (исходный код или непосредственно в скомпилированный файл) особых вызовов функций, соответствующих каким-либо событиям программы (вызовам функций и т.п.). С помощью instrumentation-based profiling можно производить измерения интересующих событий в программе. К недостаткам можно отнести влияние встроенных в программу вызовов на производительность.

В данном обзоре рассмотрены наиболее популярные инструменты для анализа и отладки эффективности OpenMP-программ, а также гибридных MPI/OpenMP программ, основанных на instrumentation-based profiling. Все они ориентированы на инструментацию программы и работу с полученной трассой. Среди них есть как проприетарные (например, Intel Thread Profiler или PGPROF) так и open source проекты (например, ompP). Также рассмотрен анализатор системы DVM.




Файлы условия, демо

1.JPG

Характеристики ВКР

Учебное заведение
Просмотров
3
Покупок
0
Размер
807,74 Kb

Список файлов

  • Отладка эффективности openmp-программ.doc 1,07 Mb
Картинка-подпись
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!

Комментарии

Поделитесь ссылкой:
Цена: 999 руб.
Расширенная гарантия +3 недели гарантии, +10% цены
Рейтинг-
0
0
0
0
0
Поделитесь ссылкой:
Сопутствующие материалы
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее