Разработка приложений в среде ParJava В.В.Бабкова, М.Д.Калугин V Всероссийская межвузовская конференция молодых ученых.

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



Advertisements
Похожие презентации
Новосибирский государственный университет Механико-математический факультет Кафедра вычислительных систем Численное моделирования распространения упругих.
Advertisements

ПАРАЛЛЕЛЬНАЯ ФИЛЬТРАЦИЯ ИЗОБРАЖЕНИЙ Фурсов В.А., Попов С.Б. Самарский научный центр РАН, Самарский государственный аэрокосмический университет, Институт.
Система фрагментированного программирования Перепелкин В.А. Всероссийская молодежная школа по параллельному программированию МО ВВС ИВМиМГ 2009 г.
Параллельная реализация расчета задач аэроакустики на неструктурированных сетках Кафедра: ВМ Студент: Рябинин А. А. Научный руководитель: Четверушкин Б.Н.
Смешанная модель параллельных вычислений OpenMP&MPI в программе газовой динамики Быков А.Н., Жданов А.С. (РФЯЦ-ВНИИЭФ, Россия) 17 мая 2013 г.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Fortan OpenMP/DVM - язык параллельного программирования для кластеров В.А. Бахтин, Н.А. Коновалов, В.А. Крюков, Н.В. Поддерюгина Институт прикладной математики.
Московский государственный университет им.М.В.Ломоносова Институт вычислительной математики РАН Воеводин В.В., Воеводин Вл.В. СУПЕРВЫЧИСЛЕНИЯ:
Кафедра ЮНЕСКО по НИТ1 Эффективность и ускорение параллельных программ параллельное программирование.
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Применение технологии Cilk для решения.
Иерархические алгоритмы для решения задач оценки состояния ЭЭС. Институт Энергетических Систем Москва 2006.
Московский государственный университет им. М. В. Ломоносова Факультет вычислительной математики и кибернетики Кафедра вычислительных методов Дипломная.
Моделирование и анализ механизмов противодействия DDoS атакам TCP SYN flooding Владимир Шахов.
Сравнение различных способов декомпозиции сеточной области при численном решении уравнения переноса Е.А. Данилкин, А.В. Старченко Томский государственный.
Анализ вычислительной сложности алгоритмов Теория сложности вычислений.
Лекции по физике. Механика Динамика вращательного движения. Гироскопы. Неинерциальные системы отсчёта.
ОПТИМАЛЬНОЕ НЕПРЯМОЕ УПРАВЛЕНИЕ ЛИНЕЙНЫМИ ДИНАМИЧЕСКИМИ СИСТЕМАМИ Белорусский государственный университет Факультет прикладной математики и информатики.
Адаптивный метод распределения SPMD-заданий в грид Паньшенсков Михаил, 545 группа Научный руководитель: Лукичев А.С. Рецензент: Демьянович Ю.К июня.
Применение методов решения задачи удовлетворения ограничениям для построения управляющих конечных автоматов по сценариям работы Владимир Ульянцев Научный.
Система автоматизации распараллеливания: DVM-эксперт Блюменберг Э.П. 528 Научный руководитель: профессор В.А. Крюков.
Транксрипт:

Разработка приложений в среде ParJava В.В.Бабкова, М.Д.Калугин V Всероссийская межвузовская конференция молодых ученых

Исследование и оптимизация процесса составления масштабируемых параллельных программ решения прикладных задач в среде ParJava. Применение разработанной технологии для разработки реального приложения. Цель работы

В настоящее время фактическим языковым стандартом разработки промышленных прикладных программ является использование одного из языков программирования высокого уровня (Fortran, C/C++) с использованием MPI (распределенная память) или OpenMP (общая память) Существуют параллельные расширения языков высокого уровня ( обращения к коммуникационным функциям генерируются компилятором ) (HPF, Cilk (MIT), Unified Parallel C (Java version – Titanium) (Berkeley), etc.) Однако эти проекты в лучшем случае исследовательские

// MPI вариант while ((iterN--) != 0) { for(i = 2; i

Почему HPF не оправдал надежд Несколько причин: отсутствие компиляторных технологий, позволяющих генерировать эффективный параллельный код, отсутствие гибких стратегий распределения данных по узлам, отсутствие инструментария и др. Ken Kennedy, Charles Koelbel, Hans Zima. The Rise and Fall of High Performance Fortran: An Historical Object Lesson// Proceedings of the third ACM SIGPLAN conference on History of programming languages, San Diego, California, Pages: , 2007.

Два направления исследований: - Языки высокого уровня (надежды возлагаются на языки нового поколения Fortress (Sun), Chapel (Cray), X10 (IBM)) - Технологии и инструментальные средства, поддерживающие программирование с использованием MPI

Проект ParJava направлен на исследование и разработку технологического процесса (workflow) создания параллельных MPI-программ, и поддерживающих этот процесс инструментальных средств При этом предполагалось, что значительная часть процесса разработки будет перенесена на инструментальный компьютер за счет использования моделей параллельных программ

Процесс написания и поддержки масштабируемой параллельной программы можно разбить на следующие этапы Этапы Инструменты ParJava Реализация последовательной программы Составление профиля Выявление циклов для распараллеливания Оценка максимально возможного ускорения Профилировщик (построение графика масштабируемости) Обнаружение зависимостей по даннымОмега-тест Устранение зависимостей по данным Оптимальное разбиение массива (минимизация пересылок) и балансировка нагрузки Целочисленное программирование (метод brunch-and-cut) Выбор операций пересылок (какие и где)Интерпретатор Оценка границ области масштабируемости и времени счета на реальных данных Интерпретатор Для больших программ расстановка контрольных точек Интерпретатор и механизм контрольных точек

Разбиение массива Количество процессов P=X*Y*Z Общий объем пересылок V=2*((X-1)+(Y-1)+(Z-1))*N 2 8 процессов: V одном = 14 N 2 > V двум = 8 N 2 > V трех = 6 N 2 N N 128 процессов: V одном = 254 N 2 > V двум = 44 N 2 > V трех = 26 N 2 При разбиении стремимся к тому, чтобы X+Y+Z была минимальной

Модельный пример пересылки данных //sending Send Recv //calculating for (i = beg_i; i < end_i; i++) for (j = 0; j < N; j++) B[i][j] = f(A[i][j]); //sending ISend IRecv //calculating for (i = 1; i < N - 1; i++) for (j = 0; j < N; j++) B[i][j] = f(A[i][j]); //waiting Wait(); //calculating last columns if (myid != 0) for (j = 0; j < N; j++) B[0][j] = f(tempL[j]); if (myid != proc_size - 1) for (j = 0; j < N; j++) B[N - 1][j] = f(tempR[j]); Вычисление массива Вычисление центральных точек Иниц-я посылки теневых граней Пересылка граней Выч-е граней Иниц-я посылки теневых граней Пересылка граней Выигрыш во времени

Модельный пример пересылки данных //sending if( myid != (proc_size – 1)) Send(tempL, 0, N, DOUBLE, myid + 1, 200); if (myid != 0) Recv(tempL, 0, N, DOUBLE, myid - 1, 200); if(myid != 0) Send(tempR, 0, N, DOUBLE, myid - 1, 200); if (myid != (proc_size - 1)) Recv(tempR, 0, N, DOUBLE, myid + 1, 200); //calculating for (i = beg_i; i < end_i; i++) for (j = 0; j < N; j++) { if (i == 0) B[i][j] = Math.sqrt(tempL[i] + A[i+1][j]); else if (i == N - 1) B[i][j] = Math.sqrt(A[i-1][j] + tempR[i]); else B[i][j] =Math.sqrt(A[i-1][j] + A[i+1][j]); } Блокирующие пересылки Неблокирующие пересылки //sending if( myid != (proc_size – 1)) ISend(tempL, 0, N, DOUBLE, myid + 1, 200); if (myid != 0) IRecv(tempL, 0, N, DOUBLE, myid - 1, 200); if(myid != 0) ISend(tempR, 0, N, DOUBLE, myid - 1, 200); if (myid != (proc_size - 1)) IRecv(tempR, 0, N, DOUBLE, myid + 1, 200); //calculating for (i = 1; i < N - 1; i++) for (j = 0; j < N; j++) B[i][j] =Math.sqrt(A[i-1][j] + A[i+1][j]); //waiting Wait(); //calculating last columns if (myid != 0) for (j = 0; j < N; j++) B[0][j] = StrictMath.sqrt(tempL[j] + A[1][j]); if (myid != proc_size - 1) for (j = 0; j < N; j++) B[N - 1][j] = StrictMath.sqrt(A[N - 2][j] + tempR[j]);

Выбор процедур обмена Варьируя время счета цикла и объем пересылаемых данных и проинтерпретировав модельный пример, можно убедиться в эффективности использования неблокирующих пересылок, сократив время интерпретации. T счета цикла > T инит. операции пересылки + T пересылки = T инит операции пересылки + S размер сообщ. /V пересылки

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

Уменьшение объема сохраняемых данных Сохранение происходит в местах, где размер кучи минимален Сохраняются только те данные, которые не являются только для чтения и которые не будут изменятся до своего использования (живые переменных). В программе моделирования торнадо, мы получили экономию четырехкратное уменьшение объема сохраняемых данных Например, для матрицы 320X320X200 надо сохранять не 10 Гб а 2.5 Гб Space loop () { difU0 = func(U_iArg[0][ix][iy][iz]); U_iDst[ 0][ ix][ iy][ iz] = U_iFxd[ 0][ ix][ iy][ iz] + difU0; difF0 = func(F_iArg[0][ix][iy][iz]); F_iDst[ 0][ ix][ iy][ iz] = F_iFxd[ 0][ ix][ iy][ iz] + difF0; difJ = func(J_iArg[ix][iy][iz]); J_iDst[ ix][ iy][ iz] = J_iFxd[ ix][ iy][ iz] + difJ; Afxd = A2 [ix] [iy] [iz]; A2 [ix] [iy] [iz] = Afxd + difA ; A_iAdst [ix] [iy] [iz] = A2 [ix] [iy] [iz] + difA ; }

Исходная система уравнений i, j,k = 1, 2, 3. -возмущения логарифма давления -скорость ветра -момент инерции мезовихря -суммарная завихренность В цилиндрической системе координат ( ) с центром в начальные условия имеют вид -характерный радиус начальных мезовихрей - амплитуды в начальный момент - функция Хевисайда Все остальные компоненты равны нулю. - характерная горизонтальная скорость - параметр шероховатости Граничные условия

Численная схема Трехслойная схема - значение искомого вектора в дискретной трехмерной точке 0, 1, …, N) в дискретный момент времени t n =n Для перехода на (n+1)-й слой используется комбинация схемы чехарда с осреднением на трех полуслоях и метода Рунге-Кутта - дискретизированный вектор правых частей исходных уравнений Анализ критериев устойчивости не производился. Критерии устойчивости находились путем численных экспериментов в предположении, что являются комбинацией следующих критериев: где с – скорость звука

Требования задачи к ресурсам При размерности задачи N*N*M требования к оперативной памяти N*N*M/2 byte При N = M = 160 точек задача занимает 2 Гб Время развития торнадо 119 секунд на кластере МСЦ (16 2-х процессорных Power 2,2 GHz, 4 GB) считалось 6 часов. При N = 320 M = 200 задача занимает 10 Гб Время счета торнадо в 300 секунд на кластере МСЦ (64 2-х процессорных Power 2,2 GHz, 4 GB) - около недели.

Производительность

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

Апробация работы. Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ: технологии параллельного программирования», г. Новороссийск, сентября Международный научно-практический Семинар и Молодежная школа «Высокопроизводительные Параллельные Вычисления на Кластерных Системах» декабря 2006 года. International Conference on the Methods of Aerophysical Research – Novosibirsk, Sixth International Conference on Computer Science and Information Technologies (CSIT2007), September, Yerevan, Armenia MTPP 2007 Parallel Computing Technologies First Russian-Taiwan Symposium Pereslavl-Zalesskii (Russia), September 2-3, 2007

Результаты расчетов Wind vector evolution in YZ-plane, which is passed through the center of the vortex (X=500 m) in the following points of time (left-to-right, up-to-down): t1=10.34 sec, t5=51.7 sec, t10=103.4 sec, t16=165.4 sec.

Результаты расчетов The field of velocities in the point of time t8 = 83 s on the different levels (left-to-right, up-to-down): z10 = м, z40 = 750 м, z60 = 1125 м, z79 = 1481 м.

Список публикаций 1.А Аветисян А.И., Бабкова В., Гайсарян С.С., Губарь А.Ю.. Рождение торнадо в теории мезомасштабной турбулентности по Николаевскому. Трехмерная численная модель в ParJava. // Журнал «Математическое моделирование». (Принято к печати) 2.А.И.Аветисян, B.B. Бабкова и А.Ю.Губарь. «Возникновение торнадо: трехмерная численная модель в мезомасштабной теории турбулентности по В.Н.Николаевскому»// «ДАН / Геофизика» (сдано в печать) 3.Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ: технологии параллельного программирования», г. Новороссийск, сентября стр Международный научно-практический Семинар и Молодежная школа «Высокопроизводительные Параллельные Вычисления на Кластерных Системах» декабря 2006 года. стр A.Yu. Gubar, A.I. Avetisyan, and V.V. Babkova, Numerical modelling of 3D tornado arising in the mesovortice turbulence theory of Nikolaevskiy /International Conference on the Methods of Aerophysical Research: Proc. Pt III /Ed. V.M. Fomin. – Novosibirsk: Publ. House Parallel, – 250 p; P Sixth International Conference on Computer Science and Information Technologies (CSIT2007), September, Yerevan, Armenia 7.MTPP 2007 Parallel Computing Technologies First Russian-Taiwan Symposium Pereslavl-Zalesskii (Russia), September 2-3, 2007