Главная » Просмотр файлов » Диалоговая оболочка системы автоматизации распараллеливания программ (только введение)

Диалоговая оболочка системы автоматизации распараллеливания программ (только введение) (848065), страница 2

Файл №848065 Диалоговая оболочка системы автоматизации распараллеливания программ (только введение) (Диалоговая оболочка системы автоматизации распараллеливания программ (только введение)) 2 страницаДиалоговая оболочка системы автоматизации распараллеливания программ (только введение) (848065) страница 22021-09-03СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)


1 5 A(I) = … 15

1 6 … = A(I) A, T (T – True Dependence)

16

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

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

Система CAPO (Computer-Aided Parallelizer and Optimizer) это система автоматического распараллеливания программ для работы на машинах с общей памятью. CAPO встроена в пакет CAPTools, который был разработан в Университете Гринвича, и независимо разработан в Исследовательском центре NASA как один из компонентов для проекта Legacy Code Modernization. CAPTools - это инструментарий для автоматической генерации кода в модели передачи сообщений. CAPTools работает с последовательной программой на языке FOTRAN 77: производит анализ зависимостей, генерирует маски для распределенных массивов и необходимые коммуникации. Ключевые особенности пакета CAPTools состоят в том, что, во-первых, он использует дополнительные методы анализа, поэтому он позволяет получить более точную информацию о зависимостях и более эффективный код, и, во-вторых, CAPTools содержит набор браузеров, которые помогают пользователю влиять на процесс распараллеливания.

Используя информацию о зависимости по данным, полученную при помощи CAPTools, CAPO генерирует директивы OpenMP или SGI для последовательной программы на языке FORTRAN. Основные стадии работы CAPO:

- Распознавание параллельных циклов

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

- Вставка директив OpenMP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Литература:

1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2004. 608 с.

2. Головкин Б.А. Вычислительные системы с большим числом процессоров. М.: Радио и связь, 1995. 320 с.

3. Документация к системе DVM. http://www.keldysh.ru/dvm

4. Информационно-аналитический центр по параллельным вычислениям http://parallel.ru/

5. Антонов А.С. Введение в параллельные вычисления. М.: Издательский отдел научно-исследовательского вычислительного центра МГУ, 2002. 69 с.

6. А. А. Букатов, В. Н. Дацюк, А. И. Жегуло. Программирование многопроцессорных

вычислительных систем. Ростов-на-Дону: Издательство ООО «ЦВВР», 2003, 208 с.

7. Abramson D., Foster, I., Michalakes, J. and Sosic R. Relative Debugging: A new paradigm for debugging scientific applications. The Communications of the Association for Computing Machinery (CACM), Vol 39, No 11, pp 67 - 77, Nov 1996

8. Sosic R., Abramson D. A. Guard: A Relative Debugger. Software Practice and Experience, Vol 27(2), pp 185 206 (Feb 1997)

9. Abramson D.A., Sosic R. Relative Debugging using Multiple Program Versions. Key Note Address, 8th Int. Symp. on Languages for Intensional Programming , Sydney, 3-5th May, 1995. In Intensional Programming I, World Scientific, ISBN 981-02-2400-1.

10. Документация к системе ParaWise (http://www.parallelsp.com/documentation.htm)

11. Документация к системе CAPO

(ftp://keldysh.ru/K_student/AUTO_PARALLELIZATION/CAPO)

- 8 -

Характеристики

Список файлов ВКР

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