1 Система автоматизации распараллеливания. Отображение на SMP-кластер. Автор: Картавец Евгений Олегович Научные руководители: д.ф.-м.н. Крюков Виктор Алексеевич.

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



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

Система автоматизации распараллеливания: DVM-эксперт Студент 528 группы Нгуен Минь Дык Научный руководитель: Профессор, д. ф.-м. н. Крюков Виктор Алексеевич.
Система автоматизации распараллеливания: отображение на мультипроцессор Выполнил: студент 528 группы Лойко Михаил Юрьевич Научный руководитель: профессор,
Гибридная модель параллельного программирования DVM/OpenMP Бахтин В.А. ИПМ им.М.В.Келдыша РАН г. Москва, 20 марта 2008 г.
МГУ им. М.В. Ломоносова, Москва, 21 октября 2011г. КОНСОРЦИУМ УНИВЕРСИТЕТОВ РОССИИ Курс: «Технология параллельного программирования OpenMP» Лабораторная.
Методика распараллеливания программ в модели DVM Институт прикладной математики им. М.В.Келдыша РАН
Большая вычислительная задача Математическая модель (система УРЧП) в подпространстве R 3 t Дискретизация УРЧП - система линейных и нелинейных уравнений.
Гибридная модель параллельного программирования DVM/OpenMP Бахтин В.А. ИПМ им.М.В.Келдыша РАН г. Москва, 5 февраля 2008 г.
Fortan OpenMP/DVM - язык параллельного программирования для кластеров В.А. Бахтин, Н.А. Коновалов, В.А. Крюков, Н.В. Поддерюгина Институт прикладной математики.
Разработка параллельных приложений для многоядерных систем С.В. Ковальчук НИИ Наукоемких компьютерных технологий, СПбГУ ИТМО.
ЗИМНЯЯ СТУДЕНЧЕСКАЯ ШКОЛА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Реализация метода частиц в ячейках FPIC (PIC – Particle In Cell) Исполнитель: Хасина Женя, ФИТ,
Смешанная модель параллельных вычислений OpenMP&MPI в программе газовой динамики Быков А.Н., Жданов А.С. (РФЯЦ-ВНИИЭФ, Россия) 17 мая 2013 г.
П РЕОБРАЗОВАНИЕ ПРОГРАММ НА ЯЗЫКЕ C-DVM В ПРОГРАММЫ ДЛЯ КЛАСТЕРОВ выполнила: студентка 527 группы Коваленко Алина Игоревна научный руководитель: профессор,
Параллельное программирование с использованием технологии OpenMP Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Томский политехнический университет.
Е.Ю. Алексеева Механико-математический факультет Южно-Уральского государственного университета.
Многопоточное программирование в OpenMP Киреев Сергей ИВМиМГ.
Интернет Университет Суперкомпьютерных технологий Отладка эффективности OpenMP- программ. Учебный курс Параллельное программирование с OpenMP Бахтин В.А.,
Найди недостающее слагаемое
1 3 o 5 Оценка эффективности инвестиций 6 Определение затрат.
Модель параллелизма по данным и управлению. DVM Эта модель (1993 г.), положенная в основу языков параллельного программирования Фортран-DVM и Си- DVM,
Транксрипт:

1 Система автоматизации распараллеливания. Отображение на SMP-кластер. Автор: Картавец Евгений Олегович Научные руководители: д.ф.-м.н. Крюков Виктор Алексеевич к.ф.-м.н. Бахтин Владимир Александрович

2 Система Автоматизации Распараллеливания ФОРТРАН программ (САПФОР). Отображение на кластер. Последовательная Fortran-программа Диалоговая оболочка Генератор База данных Параллельная программа на языке Fortran-DVM DVM-Эксперт Система САПФОР Анализатор

3 Система Автоматизации Распараллеливания ФОРТРАН программ (САПФОР). Отображение на SMP-кластер. Последовательная программа Диалоговая оболочка Генератор База данных Параллельная программа на языке Fortran- DVM/OpenMP Параллельная программа на языке Fortran- DVM/OpenMP DVM/OpenMP -Эксперт Система САПФОР Анализатор

4 Цели дипломной работы 1. Разработка алгоритма преобразования последовательной программы на языке Fortran в параллельную программу на языке Fortran-DVM/OpenMP. 2. Программная реализация DVM/OpenMP- эксперта на основе DVM-эксперта

5 Модель параллелизма DVM/OpenMP

6 DO J = 1, L DO I = 1, L A(I, J) = 0. ENDDO CDVM$ DISTRIBUTE (BLOCK,BLOCK) :: a CDVM$ PARALLEL (j,i) ON a(i,j) !$OMP PARALLEL PRIVATE(j, i) !$OMP DO SCHEDULE (STATIC) !$OMP END DO !$OMP END PARALLEL OpenMP- директивы DVM- директивы

7 Принцип работы DVM-эксперта Наилучший DVM-вариант Наилучший DVM-вариант Выбор наилучшего варианта Генерация вариантов DVM-вариант... DVM-вариант База данных

8 DVM-вариант... Наилучший DVM/OpenMP -вариант Наилучший DVM/OpenMP -вариант DVM-вариант... DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант... База данных Шаг 1. Распараллеливание DVM-вариантов на OpenMP Принцип работы DVM/OpenMP-эксперта

9 Шаг 1. Распараллеливание DVM- вариантов на OpenMP Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов, Шаг 1.2 Оценка времени выполнения каждого построенного варианта, Шаг 1.3 Выбор наилучшего варианта из построенных, Шаг 1.4 Добавление для него OpenMP-директивы в DVM-вариант. Распараллеливаем каждый DVM-вариант. Для каждого гнезда циклов, распараллеленного на DVM, выполняем следующие шаги:

10 Шаг 1. Распараллеливание DVM-вариантов на OpenMP CDVM$ PARALLEL … ON … Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов... DO ITm = 1, Nm ENDDO... DO IT2 = 1, N2 ENDDO DO IT1 = 1, N1 ENDDO DO IT1 = 1, N1 ENDDO DO IT2 = 1, N2 ENDDO DO ITm = 1, Nm ENDDO

11 Шаг 1. Распараллеливание DVM-вариантов на OpenMP Случай 1: витки i-го цикла могут выполняться независимо: DO ITi = 1, Nm... ENDDO CDVM$ PARALLEL … ON … DO IT1 = 1, N1 DO IT2 = 1, N ENDDO Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов

12 Шаг 1. Распараллеливание DVM-вариантов на OpenMP CDVM$ PARALLEL … ON … DO IT1 = 1, N1 DO IT2 = 1, N ENDDO !$OMP PARALLEL !$OMP DO SCHEDULE (STATIC) !$OMP END DO !$OMP END PARALLEL Случай 1: витки i-го цикла могут выполняться независимо: ENDDO DO ITi = 1, Nm... ENDDO DO ITi = 1, Nm PRIVATE(ITi) Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов

13 Шаг 1. Распараллеливание DVM-вариантов на OpenMP CDVM$ PARALLEL … ON … DO IT1 = 1, N1 DO IT2 = 1, N ENDDO !$OMP PARALLEL !$OMP DO SCHEDULE (STATIC) !$OMP END DO !$OMP END PARALLEL Случай 1: витки i-го цикла могут выполняться независимо: ENDDO DO ITi = 1, Nm Sum = Sum + A(ITi) !$OMP PARALLEL !$OMP DO SCHEDULE (STATIC) !$OMP END DO !$OMP END PARALLEL !$OMP PARALLEL !$OMP DO SCHEDULE (STATIC) !$OMP END DO !$OMP END PARALLEL REDUCTION(+:sum)... PRIVATE(ITi) Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов

14 Шаг 1. Распараллеливание DVM-вариантов на OpenMP Алгоритм конвейерной обработки с использованием синхронизационного массива Случай 2: i-й цикл содержит регулярную зависимость: Шаг 1.1 Формирование вариантов распараллеливания гнезда циклов

15 DVM-вариант... Наилучший DVM/OpenMP -вариант Наилучший DVM/OpenMP -вариант DVM-вариант... DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант DVM/OpenMP- вариант Практическая реализация Принцип работы DVM/OpenMP-эксперта... База данных Шаг 1. Распараллеливание DVM-вариантов на OpenMP Шаг 2. Выбор наилучшего варианта распараллеливания

16 Практическая реализация Выбор наилучшего варианта в DVM-эксперте DVM-варианты Характеристики DVM-вариантов Наилучший DVM-вариант Наилучший DVM-вариант Выбор наилучшего варианта в DVM/OpenMP-эксперте DVM/OpenMP- варианты Характеристики DVM-вариантов Характеристики DVM/OpenMP - вариантов Наилучший DVM/OpenMP -вариант Наилучший DVM/OpenMP -вариант Шаг 2. Выбор наилучшего варианта распараллеливания :

17 Шаг 2. Выбор наилучшего варианта распараллеливания Характеристики DVM-вариантов Характеристики DVM/OpenMP - вариантов Время вычислений в параллельном цикле Время вычислений в параллельном цикле := * Количество итераций, выполняющихся на одном узле Количество итераций, выполняющихся на одном ядре

18 Результаты работы IBM eServer pSeries 690 (Regatta)

19 Результаты Разработан алгоритм построения DVM/OpenMP-вариантов распараллеливания программ Разработан алгоритм оценки характеристик эффективности DVM/OpenMP-вариантов распараллеливания программ Алгоритмы были программно реализованы в DVM/OpenMP-эксперте, осуществляющим автоматическое преобразование последовательных программ на языке Fortran в параллельные программы для SMP- кластеров Работа системы была протестирована на Fortran-программах, а также проверена при помощи Intel Thread Checker.