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

ВКР: Сравнительная отладка OpenMP программ

-67%

Описание

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

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

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

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

Сравнительная отладка OpenMP программ

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

профессор, доктор физ.-мат. наук

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






Аннотация. 3

1 Введение. 4

1.1 Модели параллельного программирования. 4

1.2 Отладка параллельных программ.. 5

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

3 Обзор существующих средств отладки OpenMP-программ.. 9

4 Схема функционирования и программная реализация системы сравнительной отладки OpenMP-программ 11

4.1 Основы работы OpenMP.. 11

4.2 Сбор трассы: Проблемы и решения. 13

4.2.1 Инструментация программ.. 13

4.2.2 Получение трассы.. 14

4.2.3 Запись трассы.. 15

4.3 Сравнение трасс: Проблемы и решения. 17

4.3.1 Применимость сравнения трасс. 17

4.3.2 Трассировка для сравнения. 18

4.3.3 Проблемы при сравнении. 19

4.4 Подробности реализации.. 21

4.4.1 Используемый формат файлов трассы.. 21

4.4.2 Процесс сравнения трасс. 22

5 Заключение. 25

Список литературы.. 26

Аннотация

Данная работа посвящена разработке универсальной системы сравнительной отладки для программ, написанных на языке Фортран-OpenMP.

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

Ни одна из известных нам систем сравнительной отладки для Фортран-OpenMP не является универсальной, то есть способной принять произвольную инструментированную программу на данном языке, и провести сравнительную отладку. Имеющиеся инструменты входят в более общие системы, например разрабатываемый в NAS инструмент автоматического распараллеливания [14], и используют информацию о связях и зависимостях, доступную только при использовании данной системы.

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

1 Введение

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

Ярким подобным примером является расширение языков С/С++ и Fortran - OpenMP. Благодаря использованию директив компилятора, привычная последовательная программа легко может быть переделана для выполнения в параллельном режиме. Однако, такая простота в высшей степени обманчива как для новичков, так и для опытных программистов. Прежде чем говорить о проблемах отладки OpenMP программ, проведём краткий обзор темы параллельных вычислений.

1.1 Модели параллельного программирования

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

В настоящее время существуют следующие модели программирования параллельных программ:

- Модель передачи сообщений. В этой модели программа представляет собой совокупность процессов, каждый из которых имеет своё адресное пространство. Причем эти процессы взаимодействуют и синхронизируются только через передачу сообщений между собой. Для этой модели разработан стандарт MPI (Message Passing Interface);

- Модель неструктурированных нитей. Программа представляется как совокупность нитей (threads), способных выполняться параллельно и имеющих общее адресное пространство. Имеющиеся средства синхронизации нитей позволяют организовывать доступ к общим ресурсам. Многие среды программирования поддерживают эту модель: Win32 threads, POSIX threads, Java threads;

- Модель параллелизма по данным. Основным её представителем является язык HPF. В этой модели программист самостоятельно распределяет данные последовательной программы по процессорам. Далее последовательная программа преобразуется компилятором в параллельную, выполняющуюся либо в модели передачи сообщений, либо в модели с общей памятью. При этом каждый процессор производит вычисления только над теми данными, которые на него распределены;

- Модель параллелизма по управлению. Эта модель возникла в применении к многопроцессорным машинам. Вместо терминов нитей предлагалось использовать специальные конструкции – параллельные циклы и параллельные секции. Создание, уничтожение нитей, распределение на них витков параллельных циклов или параллельных секций – всё это брал на себя компилятор. Стандартом для этой модели сейчас является интерфейс OpenMP;

- Гибридная модель параллелизма по управлению с передачей сообщений. Программа представляет собой систему взаимодействующих MPI – процессов, каждый из которых программируется на OpenMP [4, 5, 6].

1.2 Отладка параллельных программ

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

Отладка параллельных программ осложняется (в большей степени, чем отладка последовательных программ) так называемым эффектом вмешательства (probe effect): отлаживаемая программа может вести себя по-разному при её запуске с отладочным средством и без него. Таким образом, отладочное средство может маскировать некоторые ошибки или, наоборот, способствовать их проявлению.

Поначалу ситуация с отладчиками параллельных программ была примерно такой же, как с первыми языками программирования – каждый владелец параллельной вычислительной системы имел свои собственные средства отладки. В 1997 году усилия по стандартизации командного интерфейса интерактивного отладчика параллельных программ возглавил форум по отладке высокопроизводительного программного обеспечения – HPDF (High Performance Debugging Forum) консорциума по параллельным инструментальным средствам Ptools (The Parallel Tools Consortium). В результате в 1998 году была создана версия 1 стандарта командного интерфейса интерактивного отладчика, однако, до сих пор не известно ни одной реализации отладчика, удовлетворяющей этому стандарту. Казалось бы, почему? По-видимому, стандарт был создан слишком поздно. Ко времени его написания уже существовало несколько широко используемых средств отладки параллельных программ [6].

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

Данная работа рассматривает теоретические и практические проблемы трассировки и сравнительной отладки программ, написанных на языке Fortran-OpenMP.

Главной целью данной работы является разработка экспериментальной версии универсальной системы сравнительной отладки для OpenMP программ, то есть такой системы, которая могла бы взять на входе произвольную инструментированную программу, написанную на языке Fortran-OpenMP, и провести её трассировку с последующим сравнением трасс. Система состоит из библиотеки трассировки событий исполнения OpenMP программы и средств сравнения трасс с целью обнаружения расхождений.

На разработанной экспериментальной версии следует проверить эффективность и производительность предложенных в данной работе решений и методов ускорения и оптимизации сравнительной отладки OpenMP программ.

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






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

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

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

Сравнительная отладка openmp программ.doc
Обратите внимание, что данная работа уже сдавалась в МГУ им. Ломоносова, а также её могли покупать другие студенты, поэтому её уникальность может быть нулевой. Для получения уникальной работы воспользуйтесь услугами.
Картинка-подпись
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!

Комментарии

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