П РЕОБРАЗОВАНИЕ ПРОГРАММ НА ЯЗЫКЕ C-DVM В ПРОГРАММЫ ДЛЯ КЛАСТЕРОВ выполнила: студентка 527 группы Коваленко Алина Игоревна научный руководитель: профессор,

Презентация:



Advertisements
Похожие презентации
Система автоматизации распараллеливания: DVM-эксперт Блюменберг Э.П. 528 Научный руководитель: профессор В.А. Крюков.
Advertisements

ВОССТАНОВЛЕНИЕ ТЕКСТА ФОРТРАН-ПРОГРАММЫ ИЗ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ СИСТЕМЫ КОМПИЛЯТОРОВ GCC Выполнила: студентка 527 группы Алексашина Татьяна Михайловна.
Методика распараллеливания программ в модели DVM Институт прикладной математики им. М.В.Келдыша РАН
М.Ю. Харламов, ВНУ им. В.Даля, Семантический анализатор Семантический анализатор выполняет следующие основные действия: проверку соблюдения во входной.
Система автоматизации распараллеливания: DVM-эксперт Студент 528 группы Нгуен Минь Дык Научный руководитель: Профессор, д. ф.-м. н. Крюков Виктор Алексеевич.
М.Ю. Харламов, ВНУ им. В.Даля, Транслятор Транслятор - это программа, которая переводит программу на исходном (входном) языке в эквивалентную ей.
М.Ю. Харламов, ВНУ им. В.Даля, Генерация объектного кода это перевод компилятором внутреннего представ­ления исходной программы в цепочку символов.
Система автоматизации распараллеливания: отображение на мультипроцессор Выполнил: студент 528 группы Лойко Михаил Юрьевич Научный руководитель: профессор,
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Введение в теорию компиляции Основные принципы построения трансляторов.
М.Ю. Харламов, ВНУ им. В.Даля, Оптимизация программы Оптимизация программы это обработка, связанная с переупорядочиванием и из­менением операций.
1 Система автоматизации распараллеливания. Отображение на SMP-кластер. Автор: Картавец Евгений Олегович Научные руководители: д.ф.-м.н. Крюков Виктор Алексеевич.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Текстовый язык автоматного программирования В. С. Гуров, М. А. Мазин, А. А. Шалыто.
ЛАБОРАТОРНАЯ РАБОТА 1 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ТРАНСЛЯТОРЕ Рейн Т. С.
ГОСТЕХКОМИССИЯ РОССИИ РУКОВОДЯЩИЙ ДОКУМЕНТ Защита от несанкционированного доступа к информации.
Fortan OpenMP/DVM - язык параллельного программирования для кластеров В.А. Бахтин, Н.А. Коновалов, В.А. Крюков, Н.В. Поддерюгина Институт прикладной математики.
Лекция 1 Введение в программирование и язык C. Машинный код Машинный код или машинный язык система команд (набор кодов операций) конкретной вычислительной.
Массивы данных Подготовила: Камышная И.Н.. Массивы данных Массив – это упорядоченная по возрастанию индексов (номеров) совокупность данных одного типа,
Одномерные массивы. Одномерный массив Статический массив – упорядоченная последовательность фиксированного количества переменных одного типа, имеющая.
Транксрипт:

П РЕОБРАЗОВАНИЕ ПРОГРАММ НА ЯЗЫКЕ C-DVM В ПРОГРАММЫ ДЛЯ КЛАСТЕРОВ выполнила: студентка 527 группы Коваленко Алина Игоревна научный руководитель: профессор, д. ф.-м. н. Крюков Виктор Алексеевич Москва, 2012

В ОЗМОЖНОСТИ ОПИСАНИЯ ПАРАЛЛЕЛЬНОГО ВЫПОЛНЕНИЯ ПРОГРАММЫ НА ЯЗЫКЕ C-DVM распределение элементов массива между процессорами; распределение витков цикла между процессорами; спецификация параллельно выполняющихся секций программы (параллельных задач) и отображение их на процессоры; организация эффективного доступа к удаленным (расположенным на других процессорах) данным; организация эффективного выполнения редукционных операций - глобальных операций с расположенными на различных процессорах данными (например, суммирование или нахождение максимального или минимального значения). 2

К ОМПИЛЯЦИЯ ПРОГРАММЫ НА ЯЗЫКЕ C-DVM 3 компилятор C-DVM компилятор C + коммуникационная библиотека MPI программа на языке C-DVM программа на языке C с вызовами функций библиотеки Lib-DVM этап 1 этап 2 исполняемый модуль

П ОСТАНОВКА ЗАДАЧИ ДИПЛОМНОЙ РАБОТЫ Создать компилятор C-DVM, который будет решать следующие задачи: синтаксический и семантический анализ программы, генерация промежуточного представления; преобразование прагм DVM в вызовы функций системы поддержки Lib-DVM; генерация кода на языке C. Компилятор должен распознавать следующие конструкции: описательные прагмы ; выполняемые прагмы. Должны быть заменены на вызовы соответствующих функций Lib-DVM; неявные (т.е. не отмеченные явно DVM-прагмами): создание и уничтожение распределенных массивов; доступ к распределенным данным; функции ввода-вывода; инициализация и завершение параллельного выполнения. 4

И НСТРУМЕНТАЛЬНЫЕ СИСТЕМЫ ДЛЯ СОЗДАНИЯ КОМПИЛЯТОРОВ 5 Инструментальные системы: DMS; LLVM; Sage++; ROSE. Критерии: портируемость инструментальной системы; доступность; наличие поддержки; front-end и back-end для программ на языке C. DMSLLVMSage++ROSE Портируемость инструментальной системы –+++ Доступность–+++ Наличие поддержки++–+ Front-end и back-end для программ на языке C +–++

А РХИТЕКТУРА ИНСТРУМЕНТАЛЬНОЙ СИСТЕМЫ ROSE Система ROSE состоит из трёх основных частей: front-end – лексический и синтаксический анализаторы, генерация внутреннего представления исходных кодов программы в виде AST; middle-end – инструменты для анализа, оптимизации и трансформации дерева разбора программы; back-end – генерация бинарных файлов или файлов на высокоуровневых целевых языках из внутреннего представления. 6 middle-end исходный код front-end ROSE дерево разбора back-end ROSE новое дерево разбора целевой код

С ХЕМА РАБОТЫ КОМПИЛЯТОРА C-DVM 7 прагмы DVM дерево разбора новое дерево разбора + информация из прагм новое дерево разбора анализатор прагм анализатор массивов дерево разбора + информация из прагм этап 1 этап 2 преобразование неявных конструкций, замена описательных и выполняемых прагм этап 3 добавление вызовов функций для описательных прагм дерево разбора + информация из прагм и данные о массивах middle-end

Э КСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ. Т ЕКСТ ПРОГРАММЫ НА ЯЗЫКЕ C-DVM 8 #define DO(v,l,h,s) for(v=(l); v

Э КСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ. В ЫХОД КОМПИЛЯТОРА C-DVM 9 #define DO(v,l,h,s) for(v=(l); v

Р ЕЗУЛЬТАТЫ Разработан компилятор, выполняющий следующие задачи: анализирует текст входной программы в соответствии с синтаксисом языка C-DVM; преобразует исходный код во внутреннее представление в виде абстрактного дерева разбора; преобразует дерево разбора в соответствии с моделью DVM; генерирует из внутреннего представления код на языке C. Были разработаны: алгоритмы лексического и синтаксического анализа прагм DVM; структуры для хранения информации, полученной из прагм DVM, из описаний распределяемых и выравниваемых массивов и из заголовков распределяемых циклов; алгоритмы семантического анализа распределения данных и вычислений. 10

С ПАСИБО ЗА ВНИМАНИЕ 11

П АРАЛЛЕЛЬНЫЕ ПРОГРАММЫ ДЛЯ ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРОВ. 12 компилятор C + коммуникационная библиотека MPI программа на языке C - DVM c DVM-указаниями в формате макросов программа на языке C с вызовами функций библиотеки Lib-DVM этап 1 этап 2 исполняемый модуль программа на языке C - DVM c DVM-указаниями в формате прагм существующий компилятор C-DVM новый компилятор C-DVM

С ХЕМА РАБОТЫ КОМПИЛЯТОРА C-DVM Первый этап - лексический и синтаксический анализ прагм и получение информации о массивах: количество измерений, размерность по каждому измерению, тип данных. Второй этап - преобразования в соответствии с моделью DVM: замена описания массивов и операторов доступа к элементам этих массивов; замена блоков операторов цикла и заголовков циклов; замена функций ввода-вывода; Третий этап - генерация новых вершин дерева разбора: подключение библиотечных файлов системы DVM; вызовы функций инициализации и завершения параллельного выполнения; создание и уничтожение распределённых массивов; функции выравнивания и распределения массивов. 13