Помощь в написании студенческих работ
Антистрессовый сервис

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Тенденции развития архитектурных аппаратных решений в современных компьютерах показывают, что в ближайшее время может просто не остатьтся однопроцессорных одноядерных компьютеров — научный и деловой мир окончательно сделал выбор в пользу параллельной обработки данных, вместо простого наращивания частоты работы полупроводниковых компонентов, приближающихся к своему физическому пределу. Создание… Читать ещё >

Диалоговая отладка параллельных программ: распределенная схема взаимодействующих компонентов (реферат, курсовая, диплом, контрольная)

Содержание

  • Актуальность темы
  • Специфика отладки и исследования параллельных программ
  • Цели и задачи работы
  • Практическая ценность работы
  • Новизна работы
  • Апробация работы
  • Краткое содержание работы
  • Глава 1. Известные подходы к отладке и исследованию параллельных программ
    • 1. 1. Традиционные подходы
      • 1. 1. 1. Отладочные печати
      • 1. 1. 2. Диалоговая отладка
    • 1. 2. Автоматизированные подходы
      • 1. 2. 1. Автоматический контроль корректности
      • 1. 2. 2. Сравнительная отладка
    • 1. 3. Сравнение различных подходов к отладке и исследованию параллельных программ
    • 1. 4. Инструментация программ
  • Глава 2. Общая схема распределенного комплекса
    • 2. 1. Пользовательский интерфейс
    • 2. 2. Монитор
    • 2. 3. Модули сбора информации
    • 2. 4. Программный комплекс
  • Глава 3. Отладчик параллельных программ на языке НОРМА с поддержкой Фортрана MPI. Отладчик параллельных программ на языке Фортран MPI
    • 3. 1. Постановка задачи отладки программ, написанных на непроцедурном языке
    • 3. 2. Применение общей схемы распределенных компонентов
    • 3. 3. Схема генерации отладочной информации
      • 3. 3. 1. Генерация начала/конца блоков
      • 3. 3. 2. Генерация начала выполнения оператора
      • 3. 3. 3. Генерация регистрации переменных
    • 3. 4. Преобразования объектов во время выполнения программы
    • 3. 5. Ииструментация внешних модулей на языке Фортран MPI
    • 3. 6. Отладчик для Фортрана MPI
    • 3. 7. Отладка программ и внешних модулей на Си MPI
    • 3. 8. Описание функциональных возможностей отладчика
    • 3. 9. Выражения и значения переменных: специальные возможности и функции
    • 3. 10. Опыт применения отладчика, замеченные недостатки
  • Глава 4. Диалоговый интерфейс для системы исследования MPI-программ
    • 4. 1. Постановка задачи
    • 4. 2. Применение общей схемы распределенных компонентов
    • 4. 3. Описание функциональных возможностей Диалогового интерфейса
    • 4. 4. Опыт применения Диалогового интерфейса
  • Глава 5. Информация о программной реализации распределённого комплекса для создания инструментов отладки и исследования параллельных npoipaMM в диалоговом режиме
    • 5. 1. Характеристики программной реализации распределённого комплекса
    • 5. 2. Возможность реализации новых инструментов и средств

Актуальность темы

.

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

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

В настоящее время ведутся интенсивные исследования в области автоматизации разработки параллельных программ, в частности, в области создания инструментов для отладки и исследования параллельных программ. Цели применения этих инструментов могут быть самыми различными. Это, в первую очередь, поиск ошибок в npoipaMMe, в том числе и таких специфических для параллельных программ, как ошибки обращения к процедурам, обеспечивающим параллелизм, ошибки при передаче сообщений, ошибки синхронизации, ошибки доступа к общим ресурсам и т. д. Но и затем, после того как программа начала работать, и работать правильно, отладка программы обычно не заканчивается. Сразу возникает вопрос: а насколько эффективно она работает? Равномерно ли распределена вычислительная нагрузка между компонентами параллельной программы? Для того, чтобы ответить на эти и другие подобные вопросы, применяют специальные инструменты исследования параллельных программ.

Специфика отладки и исследования параллельных программ.

Существуют различные типы параллельных архитектур: многопроцессорные системы с общей памятью, распределённые (кластерные) системы, гибридные системы. Соответственно, существуют разные модели параллелизма (например, OpenMP [1], MPI [2], GRID-среды [3 J) и разные алгоритмы параллельной обработки данных, ориентированные на определённые модели параллелизма. Необходимо отметить, что параллельные алгоритмы и программы, как правило, существенно сложнее последовательных.

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

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

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

При диалоговой отладке и исследовании параллельных программ особенно актуальна проблема визуализации получаемых результатов. В отличие от простой последовательной программы, где имеется одна текущая точка выполнения программы, а у переменной — одно значение, в параллельной программе точек выполнения может быть много, сотни или даже тысячи. Значений у одной и той же программной переменной также может быть много — у каждого процесса своё. Перед создателями средств отладки и исследования параллельных программ встаёт нелегкая задача представить всю имеющуюся информацию и предоставить средства управления процессом отладки: с одной стороны — в удобном, понятном для пользователя виде, а с другой стороны — дать пользователю исчерпывающую, полную картину поведения исследуемой программы. Как сделать это отображение удобным и компактным, и как в то же время позволить пользователю при желании получить доступ ко всем интересующим его подробностям — вот эту задачу и должен решать качественный инструмент отладки и исследования параллельных программ.

Еще одним характерным отличием процесса отладки и исследования параллельной программы от аналогичных действий с последовательной программой является то, что в типичном случае параллельная программа выполняется па удаленном вычислительном комплексе. Пользователь имеет возможность войти (чаще всего по протоколу SSH [4] с интерфейсом командной строки) на управляющую хост-машину удаленного вычислительного комплекса, скомпилировать па ней свою параллельную программу, подготовить файлы данных и запустить программу па выполнение. Профамма выполняется на вычислительных узлах комплекса, к которым пользователь доступа уже не имеет. Поэтому влиять на ход выполнения отдельных процессов своей программы пользователь уже не может, в отличие от отладки последовательной программы, выполняемой в типичном случае на компьютере, непосредственно за которым сидит пользователь. Также из-за того, что исследуемая параллельная про1рамма выполняется на удаленном комплексе, возникает проблема передачи собранной информации о программе на компьютер пользователя — в некоторых случаях объем этой информации может быть достаточно большим.

Цели и задачи работы.

Диссертационная работа посвящена проблеме диалоговой отладки и исследования удаленно выполняющихся параллельных программ. Цели работы следующие:

• Разработать схему распределенных взаимодействующих компонентов программного комплекса для создания инструментов отладки и исследования параллельных программ в диалоговом режиме;

• В соответствии с разработанной схемой создать программный комплекс для реализации инструментов отладки и исследования параллельных программ в диалоговом режиме.

На основе созданного программного комплекса были поставлены задачи разработать:

1. Диалоговый отладчик программ, написанных на декларативном непроцедурном языке НОРМА [5], с поддержкой отладки внешних модулей, написанных на языке Фортран с использованием вызовов библиотеки MPI [2]. Далее язык Фортран с использованием вызовов библиотеки MPI будем называть просто Фортран MPI.

2. Диалоговый отладчик программ, написанных на языке Фортран MPI.

3. Диалоговый интерфейс для системы исследования MPI-программ.

Практическая ценность работы.

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

Диалоговый отладчик программ, написанных на языке НОРМА, с поддержкой отладки внешних модулей, написанных на Фортране MPI и отладчик программ, написанных на Фортране MPI, могут быть использованы для отладки прикладных программ на соответствующих языках. Отладчики были апробированы на ряде вычислительных систем: кластерах МВС-15 000ВМ, MBC-6000IM Межведомственного Суперкомпыотерпого Центра РАН и находятся в опытной эксплуатации на кластере FIRE Института Прикладной Математики им. М. В. Келдыша РАН. Отладчики доступны для использования всем желающим в составе системы НОРМА [6].

Диалоговый интерфейс для системы исследования МР1-программ может быть использован для исследования и отладки МРГ-программ в DVM-системе [7].

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

Новизна работы.

В дайной работе можно выделить два принципиально новых момента:

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

2. Реализован диалоговый отладчик для непроцедурного языка (на примере языка НОРМА).

Апробация работы.

Основные результаты работы опубликованы в статьях [8 — 151. Результаты работы обсуждались на следующих конференциях и семинарах:

Международная научная конференция «Параллельные вычислительные технологии (Г1аВТ'2008)». Доклад «Отладка и анализ удаленно выполняющихся параллельных программ», Россия, Санкт.

Петербург, январь 2008 г.

Всероссийская научная конференция «Научный сервис в сети Интернет: технологии параллельного программирования». Доклад «Диалоговый интерфейс для отладки параллельных программ», Новороссийск, сентябрь 2006 г.

XI Байкальская Всероссийская конференция «Информационные и математические технологии в научных исследованиях». Доклад «Комбинированная отладка параллельных программ», Аршан, июль 2006 г.

X Байкальская Всероссийская конференция «Информационные и математические технологии в науке, технике и образовании». Доклад «Отладчик параллельных программ на языке НОРМА и Фортран», Северобайкальск, июль 2005 г.

Семинар Ав томатизация программирования ИПМ. Краткое содержание работы.

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

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

В третьей главе рассмотрены разработки диалогового отладчика параллельных программ, написанных на языке НОРМА с поддержкой Фортрана MPI и диалогового отладчика параллельных npoipaMM, написанных па языке Фортран MPI. Разработки выполнены па основе предложенной во второй главе общей схемы организации распределенного программного комплекса для отладки и исследования удаленно выполняющихся параллельных программ. Описаны компоненты отладчиков, их роли и функции, выполняемые при отладке удаленно выполняющихся параллельных программ. Подробно описаны функциональные возможности созданных отладчиков.

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

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

В заключении подводится итог проделанной работе и приводятся её основные результаты.

Заключение

.

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

В работе были получены следующие основные результаты:

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

2. Создан программный комплекс для реализации инструментов отладки и исследования параллельных программ в диалоговом режиме.

3. Разработай диалоговый отладчик программ, написанных па декларативном непроцедурном языке НОРМА, с поддержкой отладки внешних модулей, написанных на Фортране МР1.

4. Разработан диалоговый отладчик программ, написанных па.

Фортране MPI.

5. Разработан Диалоговый интерфейс для системы исследования MPI-нрограмм.

Работа выполнена под руководством доктора физико-математических паук, ведущего научного сотрудника ИПМ им. М. В. Келдыша Андрианова Александра Николаевича, которому автор выражает искреннюю признательность. Автор благодарит сотрудников ИПМ им. М. В. Келдыша Ефимкина Кирилла Николаевича и Крюкова Виктора Алексеевича за внимание к работе и полезные обсуждения. Огромное спасибо сотрудникам ИПМ им. М. В. Келдыша Колударову Павлу Ивановичу и Кулешовой Марии Игоревне за плодотворную совместную работу.

Показать весь текст

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

  1. OpenMP Consortium, http://www.openmp.org.
  2. Message-Passing Interface Forum, http://www.mpi-forum.org.
  3. Grid Computing Info Centre, http://www.gridcomputing.com.
  4. OpenSSII. http://www.openssh.org.
  5. A.M., Бугеря А. Б., Ефимкип K.H., Задыхайло И. Б. НОРМА. Описание языка. Рабочий стандарт. — М.: Препринт ИПМ им. М. В. Келдыша РАН, 1995, № 120, 52с.
  6. Система НОРМА, http://www.keldysh.ru/pages/norma/.
  7. Система DVM. http://www.keldysh.ru/dvm/.
  8. А.Б., Колударов П. И., Кулешова М. И. Диалоговый интерфейс для отладки параллельных программ. Научный сервис в сети Интернет: технологии параллельного программирования. Труды Всероссийской научной конференции. — М.: Изд-во МГУ, 2006, с. 8688.
  9. А.Б., Колударов П. И. Отладчик параллельных программ паязыке НОРМА и Фортран (Принципы реализации). — М.: Препринт ИГ1М им. М. В. Келдыша РАН, 2003, № 76, 16 стр.
  10. А.Б., Колударов П. И. Отладчик параллельных программ на языке НОРМА и Фортран. Научный сервис в сети Интернет. Труды Всероссийской научной конференции. — М.: Изд-во МГУ, 2004, с. 2628.
  11. А.Б. Отладка и анализ удаленно выполняющихся параллельных программ. Параллельные вычислительные технологии (ПаВТ'2008). Труды международной научной конференции. — Челябинск: Издательство ЮурГУ, 2008, с. 48−56.
  12. А.Б. Диалоговая отладка параллельных программ: распределенная схема взаимодействующих компонентов. — Программирование, 2008, № 3, с. 42−49.
  13. А.Б., Колударов П. И., Кулешова М. И. Средства отладки эффективности MPI-программ. Научный сервис в сети Интернет: решение больших задач. Труды Всероссийской научной конференции. — М.: Изд-во МГУ, 2008, с. 89−90.
  14. Intel Thread Checker. l^p://www.intel.com/cd/soibvare/products/asrno-na/cng/threading/286 406.htm
  15. Total View. http://www.etnus.com/TotalView/
  16. M.P. Интерактивная отладка MPI-программ с использованием параллельного отладчика TDB. Научный сервис в сети Интернет: технологии распределенных вычислений. Труды Всероссийской научной конференции. — М.: Изд-во МГУ, 2005, с. 115−119.
  17. Hood R. The p2d2 Project: Building a Portable Distributed Debugger // Proc. of the ACM SIGMETRICS Symposium on Parallel and Distributed Tools. Philadelphia, 1996. pages 127−136. http://doi.acm.org/10.1145/238 020.238058
  18. J. Lourenco et al., An integrated testing and debugging environment for parallel and distributed programs, Proceedings of the 23rd Euromicro. Conference, Budapest, 1997, pp. 291−298.
  19. Allinea DDT (Distributed Debugging Tool), http://www.allinea.com.
  20. A.H., Базаров С. Б., Бугеря А. Б., Колударов П. И. Применение отладчика программ на языке Норма при решении трехмерных задач газовой динамики на многопроцессорных ЭВМ. — М.: Препринт ИПМ им. М. В. Келдыша РАН, 2005, № 118, 11 стр.
  21. А.Н., Базаров С. Б., Бугеря А. Б., Колударов П. И. Набоко И.М. Фокусировка взрывных волн: Моделирование на параллельных компьютерах. — Химическая физика, 2006, т.25, № 11, с. 54−59.
Заполнить форму текущей работой