авторефераты диссертаций БЕСПЛАТНАЯ РОССИЙСКАЯ БИБЛИОТЕКА - WWW.DISLIB.RU

АВТОРЕФЕРАТЫ, ДИССЕРТАЦИИ, МОНОГРАФИИ, НАУЧНЫЕ СТАТЬИ, КНИГИ

 
<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ

Pages:   || 2 | 3 |

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

-- [ Страница 1 ] --

На правах рукописи

Бугеря Александр Борисович

Диалоговая отладка параллельных программ:

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

Специальность 05.13.11 – математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Автореферат

диссертации на соискание ученой степени

кандидата физико-математических наук

Москва – 2008 год

Работа выполнена в Институте прикладной математики

им. М.В. Келдыша РАН.

Научный руководитель: доктор физико-математических наук

Андрианов Александр Николаевич

Официальные оппоненты: доктор физико-математических наук

Якобовский Михаил Владимирович,

кандидат физико-математических наук

Косачев Александр Сергеевич

Ведущая организация: Научно-исследовательский вычислительный центр МГУ

имени М.В.Ломоносова

Защита состоится 02 декабря 2008 г. в 11 часов на заседании диссертационного совета Д 002.024.01 в Институте прикладной математики им. М.В. Келдыша РАН по адресу: 125047, Москва, Миусская пл., 4.

С диссертацией можно ознакомиться в библиотеке Института прикладной математики им. М.В. Келдыша РАН.

Автореферат разослан октября 2008 г.

Ученый секретарь диссертационного совета,

доктор физико-математических наук Т.А. Полилова

Общая характеристика работы

Объект исследования и актуальность темы

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

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





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

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

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

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

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

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

Цели:

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

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

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

Научная новизна работы

  • Предложена универсальная распределенная схема взаимодействующих компонентов и реализован на её основе легко модифицируемый и расширяемый программный комплекс для отладки и исследования параллельных программ.
  • Разработан диалоговый отладчик для непроцедурного языка (на примере языка НОРМА).

Практическая значимость

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

Диалоговый интерфейс для системы исследования MPI-программ может быть использован для исследования и отладки MPI-программ в DVM-системе.

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

Апробация работы и публикации

Основные результаты диссертации были доложены на российских и международных научных конференциях и опубликованы в трудах этих конференций [1, 2, 3, 4, 5, 6]. Имеется одна публикация [7] в журнале из перечня ВАК.

Структура и объем работы

Диссертация состоит из введения, пяти глав, заключения и списка литературы (27 наименований). Общий объем работы составляет 79 страниц, работа содержит 9 иллюстраций.

Содержание работы

Введение

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

Глава 1. Известные подходы к отладке и исследованию параллельных программ

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

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

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

Отладочные печати

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

Диалоговая отладка

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

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

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

Автоматизированные подходы к отладке и исследованию параллельных программ.

Автоматический контроль корректности

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

Сравнительная отладка

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

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

Сравнение различных подходов к отладке и исследованию параллельных программ.

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

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

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

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



Pages:   || 2 | 3 |
 



Похожие работы:







 
© 2013 www.dislib.ru - «Авторефераты диссертаций - бесплатно»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.