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


Скачать 428.41 Kb.
Название Дипломная работа
страница 1/12
Тип Диплом
rykovodstvo.ru > Руководство эксплуатация > Диплом
  1   2   3   4   5   6   7   8   9   ...   12
Московский государственный университет им. М.В. Ломоносова,

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

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

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

Преобразование программ на языке C-DVM в программы для кластера

Выполнила:

студентка группы №527

Коваленко А.И.

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

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

Крюков В.А.

Москва 2012

Аннотация


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

Было проведено экспериментальное исследование, показавшее корректность и правильность работы реализованного компилятора.


Содержание


Аннотация 2

Содержание 3

1Введение 4

2Постановка задачи дипломной работы 10

3Обзор существующих инструментальных средств для создания компиляторов 12

3.1DMS Software Reengineering Toolkit 12

3.2LLVM 14

3.3Sage++ 16

3.4ROSE 18

3.5Выводы 20

4Описание реализации 22

4.1Инструментальная система ROSE 22

4.2Архитектура инструментальной системы ROSE 23

4.3Архитектура и принципы работы компилятора C-DVM 24

5Экспериментальное исследование 30

5.1Тестирование работы компилятора на алгоритме Якоби решения системы линейных уравнений со спецификацией SHADOW_RENEW для локализации удалённых данных типа SHADOW 34

5.2Тестирование работы компилятора на алгоритме SOR решения системы линейных уравнений со спецификацией ACROSS для локализации удалённых данных типа SHADOW 35

6Заключение 37

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

Приложение A. Описание прагм C-DVM 41

Приложение Б. Синтаксис языка C-DVM 44

Приложение В 48

Приложение Г 53


1Введение


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

С 1992 года, когда кластеры стали самыми производительными вычислительными системами, резко возрос интерес к проблеме разработки для них параллельных прикладных программ [2].. К этому моменту уже было ясно, что трудоемкость разработки прикладных программ для многопроцессорных систем с распределенной памятью является главным препятствием для их широкого внедрения. За прошедший с тех пор период предложено много различных подходов к разработке параллельных программ, созданы десятки различных языков параллельного программирования и множество инструментальных средств.

Одним из таких языков является язык C-DVM [3]., разработанный в Институте прикладной математики им. М.В. Келдыша РАН при активном участии студентов и аспирантов факультета ВМиК МГУ им. М.В.Ломоносова. C-DVM представляет собой стандартный язык последовательного программирования ANSI C, расширенный спецификациями параллелизма в соответствии с моделью DVM (Distributed Virtual Machine, Distributed Virtual Memory – распределённая виртуальная машина, распределённая виртуальная память) [4].. Спецификации параллелизма – это средства описания правил параллельного выполнения программ. Они оформлены в виде специальных DVM-указаний.

DVM-указания предоставляют следующие возможности описания параллельного выполнения программы:

  • распределение элементов массива между процессорами;

  • распределение витков цикла между процессорами;

  • спецификация параллельно выполняющихся секций программы (параллельных задач) и отображение их на процессоры;

  • организация эффективного доступа к удаленным (расположенным на других процессорах) данным;

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

В настоящее время компиляция программы на языке C-DVM выполняется в два этапа:

компилятор C-DVM

компилятор C + коммуникационная библиотека MPI

программа на языке C-DVM

программа на языке C с вызовами функций библиотеки Lib-DVM

этап 1

этап 2

исполняемый модуль

Рисунок 1. Схема компиляции программы на языке C-DVM

На первом этапе компилятор C-DVM [5]. преобразует параллельную программу на языке C-DVM в программу на языке С, выполняющуюся в соответствии с моделью ОКМД по классификации Флинна (один поток команд – много данных) на каждом выделенном задаче процессоре. DVM-указания преобразуются в вызовы функций единой системы поддержки Lib-DVM [6]., которая реализована на языке C и базируется на стандартной коммуникационной библиотеке MPI (Message Passing Interface) [7].. Поэтому система поддержки переносима на любые платформы, для которых существует реализация MPI.

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

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

  • эффективное распараллеливание программ для мультипроцессорных вычислительных кластеров – гибридная модель DVM/OpenMP [9].;

  • распараллеливание программ для гетерогенных кластеров, построенных на основе графических процессоров – модель DVMH [10]..

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

Первоначально DVM-указания были оформлены в виде макросов DVM(<�директива>). В настоящее время они переведены в формат прагм по аналогии с OpenMP, что позволяет программисту иметь одну версию программы для последовательного и параллельного выполнения, поскольку прагмы являются стандартным средством языка C и для стандартных компиляторов языка C (таких, как gcc) «невидимы». Новый формат DVM-указаний – первый этап в создании компилятора C-DVM/OpenMP для распараллеливания программ на вычислительные мультипроцессорные и гетерогенные кластеры.

В данной работе рассматривается разработка компилятора с языка C-DVM в язык C для нового формата языка C-DVM с DVM-указаниями в виде прагм. Новый компилятор C-DVM состоит из трёх частей [11].:

  • front-end – синтаксический и семантический анализ программы на исходном языке, преобразование кода на более низкий уровень представления (по сравнению с исходным), обычно называемый промежуточным представлением компилятора;

  • middle-end – внутренние преобразования промежуточного представления программы (например, оптимизация кода или генерация нового кода);

  • back-end – преобразование внутреннего представления компилятора в код на целевом языке программирования.

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

компилятор C + коммуникационная библиотека MPI

программа на языке C-DVM c DVM-указаниями в формате макросов

программа на языке C с вызовами функций библиотеки Lib-DVM

этап 1

этап 2

исполняемый модуль

программа на языке C-DVM c DVM-указаниями в формате прагм

существующий компилятор C-DVM
новый компилятор C-DVM

Рисунок 2. Схема компиляции программы на языке C-DVM в системе DVM существующим и новым компиляторами C-DVM

  1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Дипломная работа icon Дипломная работа по теме: “ Интерактивная база данных по дендраклиматологии” Работу
Моя дипломная работа очень актуальна, потому что дендроклиматология – малоизученная и малоизвестная область биологии. Дендроклиматология...
Дипломная работа icon Негосударственное образовательное учреждение среднего профессионального...
...
Дипломная работа icon Дипломная работа содержит таблиц, литературных источников 11 и графических приложений 4
Дипломная работа содержит таблиц, литературных источников – 11 и графических приложений – 4
Дипломная работа icon Дипломная работа
Факторы, влияющие на решение по выбору системы электронного документооборот
Дипломная работа icon Дипломная работа
Квалификация: Художественный руководитель музыкально-инструментального коллектива, преподаватель
Дипломная работа icon Дипломная работа
Защита персональных данных: ответственность за нарушения трудового законодательства
Дипломная работа icon Дипломная работа проектирование и внедрение
Охватывают почти все действия с платформой Asterisk
Дипломная работа icon Дипломная работа
Институт переподготовки и повышения квалификации кадров по финансово-банковским специальностям
Дипломная работа icon Дипломная работа
Уставные преобразования в скитской жизни в начале ХХ века и численность братства
Дипломная работа icon Дипломная работа
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Дипломная работа icon Министерство образования и науки Челябинской области гбу дпо «Челябинский...
Использование активных форм обучения как условие формирования профессиональных компетенций
Дипломная работа icon Дипломная работа
Современное состояние конъюнктивальной микрофлоры пациентов до и после хирургического лечения катаракты
Дипломная работа icon Дипломная работа реализация механизма аутентификации
Федеральное государственное бюджетное образовательное учреждение высшего образования
Дипломная работа icon Дипломная работа
Средства анализа эффективности выполнения программ на языке Fortran dvmh на кластере с графическими процессорами
Дипломная работа icon Дипломная работа «Допущена к защите»
Введение Глава 1 Эволюция международного туризма как формы внешнеэкономической деятельности
Дипломная работа icon Дипломная работа
Анализ состояния геоинформационных технологий в решении типовых задач управления региональной недвижимостью Тульской области

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск