Диалоговая оболочка отладчика MPI-программ - Курсовая работа

бесплатно 0
4.5 77
Изучение методов создания диалоговой оболочки отладчика MPI-программ, который войдет в состав системы автоматизации разработки параллельных программ (DVM-системы). Основные подходы к параллельному программированию и созданию пользовательского интерфейса.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Существуют сверхсложные вычислительные задачи, для решения которых требуется применение суперкомпьютеров. Такие задачи называют grand challenges. Вот лишь некоторые области, где возникают задачи подобного рода: · Предсказания погоды, климата и глобальных изменений в атмосфере Параллельное программирование применяется для решения задач такого рода - предсказание метеоусловий, задач структурной биологии и генетики человека, задач астрономии, гидро-и газодинамики и многих других. Программист должен оптимально распределить данные и вычисления, чтобы добиться максимальной эффективности решения задачи на суперкомпьютерах с распределенной памятью.Параллельные программы выполняются не многопроцессорных ЭВМ, поэтому необходимы механизмы для взаимодействия процессоров между собой.В модели передачи сообщений параллельная программа выполняется на множестве процессов, каждый из которых имеет свое собственное адресное пространство. В 1993 году был разработан стандарт передачи сообщений MPI (Message Passing Interface) [2]. Внедрение этого стандарта позволило увеличить возможность переносимости программ, разрабатываемых в рамках разных подходов, с использованием модели передачи сообщений. · Широкий набор коллективных операций (например, широковещательная рассылка информации, сбор информации с разных процессоров), допускающих гораздо более эффективную реализацию, чем использование соответствующей последовательности пересылок точка-точка; · Широкий набор редукционных операций (например, суммирование расположенных на разных процессорах данных, или нахождение их максимальных или минимальных значений), не только упрощающих работу программиста, но и допускающих гораздо более эффективную реализацию, чем это может сделать прикладной программист, не имеющий информации о характеристиках коммуникационной системы;Программа представляется как совокупность нитей (threads), способных выполняться параллельно и имеющих общее адресное пространство. Имеющиеся средства синхронизации нитей позволяют организовывать доступ к общим ресурсам. Многие системы программирования поддерживают эту модель: Win32 threads, POSIX threads, Java threads. В этой модели программист самостоятельно распределяет данные последовательной программы по процессорам. Далее последовательная программа преобразуется компилятором в параллельную, выполняющуюся либо в модели передачи сообщений, либо в модели с общей памятью.Для отладки программы не используются процессы ее выполнения; · Методика анализа отладочной информации после завершения выполнения программы (postmortem анализ) [8] позволяет минимизировать эффект вмешательства для систем с распределенной памятью; Обычный способ отладки последовательных программ - установка точек останова, выполнение программы (процесса (процессов), нити (нитей)) до точки останова, анализ состояния программы в точке останова и т.д.; В процессе выполнения программы средство отладки производит действия по локализации ошибок; Отладка программы состоит из сбора информации, необходимой для последующего детерминированного воспроизведения ее выполнения и повторных детерминированных запусков этой программы с использованием собранной информации.· Гибкость: отсутствует (не использует процессы выполнения программы). · Удобство использования и простота изучения: пользователю необходимо указать, какие блокировки, за какие разделяемые переменные отвечают. · Использование ресурсов: не требует выполнения на параллельной ЭВМ, т.к. процессы выполнения программы не используются. · Гибкость: отсутствует, (анализ происходит после завершения выполнения программы). · Удобство использования и простота изучения: от пользователя требуется самостоятельная установка точек останова, изучение состояния программы, ее перезапуск, изменение значений переменны и т.д.· Эффект вмешательства: имеется, при сравнении данных, нарушается планирование выполнения процессов/нитей. · Удобство использования и простота изучения: отладчик удобно и просто использовать, если он имеет графический интерфейс и средства визуализации различий в сравниваемых данных. · Языки программирования и операционные системы: проблем с поддержкой традиционных языков программирования, их параллельных расширений и операционных систем не выявлено. · Локализация ошибок: класс локализуемых ошибок широк, возможны трудности с локализацией трудновоспроизводимых ошибок - дедлоков и эффектов состязаний - не при каждом запуске могут проявиться. · Эффект вмешательства: отсутствует в случае перебора входных данных и строк исходного кода.В понятие пользовательского интерфейса (ПИ) входит не только, способ визуализации данных (трехмерные, анимированные изображения), но и способы взаимодействия пользователя с системой.При создании пользовательского интерфейса первой решается задача: создать способ общения пользователя с компьютером (программой). Первое, на что следует обратить внимание при разработке, это то, для кого создается интерфейс. Профессиональный пользователь располагает достаточным объемом времени и достаточно мо

План
Содержание

1. Введение

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

2.1 Модель передачи сообщений MPI

2.2 Другие модели

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

3.1 Обзор методик отладки

3.2 Обзор существующих средств отладки

3.3.1 LOCKINT (Sun)

3.3.2 MAD EMU и ATTEMPT (Johannes Kepler University Linz)

3.3.3 Total View (Etnus LLC), Prism(Sun), p2d2(NAS Ames), Ladebug(Compaq), GDB(GNU), DBX(Sun)

3.3.4 Assure(Intel), DVM debugger(KIAM RAS), UMPIRE (LLNL)

3.3.5 DEJAVU (IBM)

3.3.6 Guard( Monash University ), DVM debugger(KIAM RAS), NASA/Ames support for debugging automatically parallelized programs

3.3.7 HOWCOME demonstrator, DD.py ( Saarland University )

4. Пользовательский интерфейс

4.1 Создание интерфейса

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

5. Диалоговая оболочка отладчика MPI-программ.

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

5.2 Общая схема использования

5.3 Входная информация

5.4 Основные объекты визуализации

5.5 Основные функции визуализатора

5.6 Общая схема визуализации

5.7 Окно состояния задачи (Task state)

5.8 Окно обобщенных ошибок (Error location)

5.9 Окно топологии процессоров (Topology control)

5.10 Окно конкретных ошибок (Errors list)

5.11 Окно событий (Event line)

5.12 Окно просмотра стека и исходных текстов (Text control)

5.13 Окно просмотра трасс (Trace control)

Заключение

Литература

1.

Введение
Существуют сверхсложные вычислительные задачи, для решения которых требуется применение суперкомпьютеров. Такие задачи называют grand challenges.

Grand challenges - это фундаментальные научные или инженерные задачи с широкой областью применения, эффективное решение которых возможно только с использованием мощных (суперкомпьютерных) вычислительных ресурсов [1].

Вот лишь некоторые области, где возникают задачи подобного рода: · Предсказания погоды, климата и глобальных изменений в атмосфере

· Науки о материалах

· Построение полупроводниковых приборов

· Сверхпроводимость

· Структурная биология

· Разработка фармацевтических препаратов

· Генетика человека

· Квантовая хромодинамика

· Астрономия

· Транспортные задачи

· Гидро- и газодинамика

· Управляемый термоядерный синтез

· Эффективность систем сгорания топлива

· Разведка нефти и газа

· Вычислительные задачи наук о мировом океане

· Распознавание и синтез речи

· Распознавание изображений

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

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

Параллельная программа не обязательно должна быть параллельной версией какой-либо последовательной программы, она также может реализовывать алгоритмы, которые невыгодно использовать на последовательных ЭВМ.

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

· Возрастает сложность программирования, а, следовательно, возрастает и вероятность совершения ошибок;

· Появляются новые виды ошибок, специфичные для параллельных программ: взаимная блокировка (deadlock), условия гонок (race conditions), и другие.

Эти ошибки сложны для обнаружения и вызывают недетерминированное поведение программы.

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

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

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?