Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемАлина Ларькина
1 Разработка приложений в среде ParJava В.В.Бабкова, М.Д.Калугин V Всероссийская межвузовская конференция молодых ученых
2 Исследование и оптимизация процесса составления масштабируемых параллельных программ решения прикладных задач в среде ParJava. Применение разработанной технологии для разработки реального приложения. Цель работы
3 В настоящее время фактическим языковым стандартом разработки промышленных прикладных программ является использование одного из языков программирования высокого уровня (Fortran, C/C++) с использованием MPI (распределенная память) или OpenMP (общая память) Существуют параллельные расширения языков высокого уровня ( обращения к коммуникационным функциям генерируются компилятором ) (HPF, Cilk (MIT), Unified Parallel C (Java version – Titanium) (Berkeley), etc.) Однако эти проекты в лучшем случае исследовательские
4 // MPI вариант while ((iterN--) != 0) { for(i = 2; i
5 Почему 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.
6 Два направления исследований: - Языки высокого уровня (надежды возлагаются на языки нового поколения Fortress (Sun), Chapel (Cray), X10 (IBM)) - Технологии и инструментальные средства, поддерживающие программирование с использованием MPI
7 Проект ParJava направлен на исследование и разработку технологического процесса (workflow) создания параллельных MPI-программ, и поддерживающих этот процесс инструментальных средств При этом предполагалось, что значительная часть процесса разработки будет перенесена на инструментальный компьютер за счет использования моделей параллельных программ
8 Процесс написания и поддержки масштабируемой параллельной программы можно разбить на следующие этапы Этапы Инструменты ParJava Реализация последовательной программы Составление профиля Выявление циклов для распараллеливания Оценка максимально возможного ускорения Профилировщик (построение графика масштабируемости) Обнаружение зависимостей по даннымОмега-тест Устранение зависимостей по данным Оптимальное разбиение массива (минимизация пересылок) и балансировка нагрузки Целочисленное программирование (метод brunch-and-cut) Выбор операций пересылок (какие и где)Интерпретатор Оценка границ области масштабируемости и времени счета на реальных данных Интерпретатор Для больших программ расстановка контрольных точек Интерпретатор и механизм контрольных точек
9 Разбиение массива Количество процессов 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 была минимальной
10 Модельный пример пересылки данных //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]); Вычисление массива Вычисление центральных точек Иниц-я посылки теневых граней Пересылка граней Выч-е граней Иниц-я посылки теневых граней Пересылка граней Выигрыш во времени
11 Модельный пример пересылки данных //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]);
12 Выбор процедур обмена Варьируя время счета цикла и объем пересылаемых данных и проинтерпретировав модельный пример, можно убедиться в эффективности использования неблокирующих пересылок, сократив время интерпретации. T счета цикла > T инит. операции пересылки + T пересылки = T инит операции пересылки + S размер сообщ. /V пересылки
13 Механизм точек прерывания Для задач, которые считаются несколько дней становится необходимым реализовать механизм точек прерывания 2 проблемы: Сохранение консистентного состоянияСохранение консистентного состояния Уменьшить объем сохраняемых данныхУменьшить объем сохраняемых данных Состояние двух процессов называют неконсистентным, если при передаче сообщения одного процесса другому, возникло состояние, когда первый процесс еще не послал сообщение, а во втором уже сработала функция получения сообщения.
14 Уменьшение объема сохраняемых данных Сохранение происходит в местах, где размер кучи минимален Сохраняются только те данные, которые не являются только для чтения и которые не будут изменятся до своего использования (живые переменных). В программе моделирования торнадо, мы получили экономию четырехкратное уменьшение объема сохраняемых данных Например, для матрицы 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 ; }
15 Исходная система уравнений i, j,k = 1, 2, 3. -возмущения логарифма давления -скорость ветра -момент инерции мезовихря -суммарная завихренность В цилиндрической системе координат ( ) с центром в начальные условия имеют вид -характерный радиус начальных мезовихрей - амплитуды в начальный момент - функция Хевисайда Все остальные компоненты равны нулю. - характерная горизонтальная скорость - параметр шероховатости Граничные условия
16 Численная схема Трехслойная схема - значение искомого вектора в дискретной трехмерной точке 0, 1, …, N) в дискретный момент времени t n =n Для перехода на (n+1)-й слой используется комбинация схемы чехарда с осреднением на трех полуслоях и метода Рунге-Кутта - дискретизированный вектор правых частей исходных уравнений Анализ критериев устойчивости не производился. Критерии устойчивости находились путем численных экспериментов в предположении, что являются комбинацией следующих критериев: где с – скорость звука
17 Требования задачи к ресурсам При размерности задачи 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) - около недели.
18 Производительность
19 Основные результаты. Исследован и предложен процесс разработки написания масштабируемых параллельных программ в среде ParJava. Разработан механизм оптимальной организации точек останова. И этот механизм реализован в среде ParJava. Разработана версия среды ParJava под Eclipse. Разработана масштабируемая параллельная программа численного решения системы уравнений, моделирующая процессы и условия генерации интенсивных атмосферных вихрей (ИАВ) в трехмерной сжимаемой атмосфере, исходя из теории мезомасштабных вихрей по В.Н.Николаевскому.
20 Апробация работы. Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ: технологии параллельного программирования», г. Новороссийск, сентября Международный научно-практический Семинар и Молодежная школа «Высокопроизводительные Параллельные Вычисления на Кластерных Системах» декабря 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
21 Результаты расчетов 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.
22 Результаты расчетов 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 м.
23 Список публикаций 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
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.