Параллельная реализация численного решения задачи на восстановление граничной функции для открытых акваторий Карепова Е.Д. Шайдуров В.В. Дементьева Е.В. Суперкомпьютерные технологии математического моделирования Якутск - 2011 Институт вычислительного моделирования СО РАН Overview Моделирование распространения поверхностных волн в больших акваториях Задача о граничной функции – задача оптимального управления Параллельный алгоритм Распределенная память: декомпозиция расчетной области, реализация обменов, реализации MPI и стратегия управления памятью Общая память: цикл с зависимостью по данным в теле цикла, проблема операции редукции Сравнение MPI и OpenMP Технология CUDA – пока больше проблем Численные эксперименты по восстановлению граничной функции Моделирование поверхностных волн в больших акваториях Институт вычислительного моделирования СО РАН Дифференциальная постановка прямой задачи Пример расчетной области 47652 узлов, 86452 элементов, шаг сетки 0.3° Граничные и начальные условия После дискретизации по времени на каждом временном шаге получаем эллиптическую задачу L = f + Bd, C =φob Задача на ассимиляцию данных наблюдений (5-6) L f Bd , inf v d 2 HC (7) C ob inf d v 2 HC 2 L2 ( 1 ) (8) Ad g 2 L2 ( 1 ) A CL1B, g ob CL1 f В общем случае функция d не известна Для замыкания нашей задачи (1) – (3) рассмотрим дополнительное условие, заданное на части границы Г0: m0 obs , где obs известная функция (4). ЗАДАЧА. Найти граничную функцию d, компоненты скорости (u,v) и возвышение свободной поверхности ξ , удовлетворяющие системе (1), граничному условию (2), начальным данным (3) и условию замыкания (4). [Агошков В.И. Методы оптимизации и сопряженные уравнения в задачах математической физики. – М: ИВМ РАН, 2003. - 256 с.] (9) Задача оптимального управления L = f + Bd, C =φob (5-6) (5)-(6) некорректна L f Bd , inf v d 2 HC C ob (7) 2 L2 ( 1 ) (8) inf d v 2 HC Ad g 2 L2 ( 1 ) A CL1B, g ob CL1 f (9) Вариационные уравнения (Эйлера) Внутренний источник. Динамическое восстановление Решение задачи на установление для определения начальных данных на Г2 За данные "наблюдений" принимались значения свободной поверхности из установившегося решения, а значения граничной d функции "забывались". Параллельный алгоритм • Распределенная память: декомпозиция расчетной области, реализация обменов, реализации MPI и стратегия управления памятью • Общая память: цикл без зависимости по данным в теле цикла, проблема операции редукции • Сравнение MPI и OpenMP • Технология CUDA Институт вычислительного моделирования СО РАН Распределенная память. MPI (ν + 1) итерация Якоби i,j+1 i-1,j i,j i-1,j-1 i+1,j+1 ν итерация Якоби i+1,j i,j-1 1. Декомпозиция расчетной области. Без теневых граней: Total exchange time Exchange costs for static memory allocation исходная область не включает взаимно перекрывающиеся подобласти. Пересчет значений на границах между подобластями предполагает обмен с дополнительным суммированием при обмене частичной невязкой на каждой итерации Якоби 10 8 6 4 2 0 0 4 8 12 2. Обмены данными точка-точка. Неблокирующие обмены: 16 20 24 28время 32 коммуникаций не зависит от количества The number of processesпроцессов, (pcs), one участвующих process per one core в обмене 3. Операция редукции по всем точкам расчетной области. Время редукции растет логарифмически от числа процессов MVS-1000/ICM cluster (developed in ICM SB RAS) 99-cores cluster consists of: 27 computational nodes AMD Athlon64/3500+/1Gb (one-processor one-core); 12 computational nodes AMD Athlon64 X2 Dual Core/4800+/2Gb (one-processor two-core); 12 computational nodes 2 X Dual-Core AMD Opteron Processor 2216/4Gb (two-processor two-core). Manage node, access server, file server with 400 Gb disk space Athlon64/3500+/1Gb. Total disk space 1Тб. Operating system Gentoo Linux. Managing network FastEthernet (100 Mb/sec), Interconnect GigaEthernet (1000 Mb/sec). SKIF Cyberia (cluster of the Tomsk state university) 283/566/ 1132 computational nodes/processors/cores Processor dual core Intel®Xeon® 5150, 2,66GHz (Woodcrest) Manage node dual core Intel®Xeon® 5150, 2,66GHz (Woodcrest) Interconnect InfiniBand (950 Mb/sec) Peak performance 12 TFlops Real performance for Linpack 9,013 TFlops (75% peak) Total main memory 1 136 Gb Total disk space 22,56 Tb File server 10 Тб Hewlett-Packard BL460c solution (cluster of the Novosibirsk state university & Institute of Computational Technologies) 64/ 512 computational nodes/cores Interconnect InfiniBand DDR 4x Peak performance 5.447 TFlops Real performance for Linpack 4.09 TFlops Total main memory 1 024 Gb File server 24 Тб Зависимость ускорения вычислений от количества доступных процессоров для различных кластерных систем и способов реализаций двухточечных обменов Без перекрытий, Без перекрытий, Без перекрытий, Без перекрытий, Теория 35 30 неблокирующ ие обмены (SKIF Cyberia) обмены SendRecv (SKIF Cyberia) неблокирующ ие обмены (кластер ИВМ СО РАН) обмены SendRecv (кластер ИВМ СО РАН) 25 20 15 10 5 0 0 2 4 6 8 10 12 14 16 18 20 количество процессов 22 24 26 28 30 32 β_calc = T_calc / T_1 Время вычислений 1,E+00 Теория 8,E-01 SKIF Cyberia, Томск кластер ИВМ СО РАН, Красноярск 6,E-01 HP, Новосибирск 4,E-01 2,E-01 0,E+00 2 6 10 14 18 22 количество процессов 26 30 Сравнение двух реализаций MPI и стратегий управления памятью В исследовании была сопоставлена производительность двух популярных реализаций MPI: MPICH2 v.1.2.1p1 OpenMPI v.1.4.1, являющегося «наследником» пакета LAM Рассматриваемая задача тестировалась в двух модификациях выделением памяти под основные массивы и буферы: со статическим с динамическим (calloc/free) Сразу отметим, что вариант со статическим выделением не показал существенного преимущества какого-то одного пакета: расхождения во времени счета и во времени обменов данными во всех опробованных конфигурациях оказались достаточно малы, чтобы не принимать их во внимание. Время выполнения (с) Время выполнения (фрагмент) 900 Статическое 800 Динамическое c mallopt 700 Динамическое без LP 600 Динамическое 500 400 300 200 100 4 8 12 16 20 Количество процессов, p (шт) 24 28 32 Ускорение: Теория VS Численный эксперимент Theory 35 Numerical experiments acceleration 30 25 20 15 10 5 0 0 2 4 6 8 10 12 14 16 18 20 number of processes 22 24 26 28 30 32 Гибридная модель: MPI+OpenMP Идеология: каждый MPI-процесс порождает несколько нитей OpenMP Мотивация: Широкое распространение распределенных систем с многоядерными узлами, кластеров из SMP-систем; Эффективное использование многоуровневой иерархии памяти: обращение к общей памяти вместо MPI-сообщений; меньший объем вычислений (не требуется дополнительное суммирование при обмене частичной невязкой на каждой итерации Якоби). Общая память. OpenMP Время на создание/уничтожение нитей. Время на синхронизацию нитей при распределении работы тела цикла. В опции schedule конструкции #pragma omp for можно управлять параметром распределения итераций цикла между нитями («портфель задач»): - STATIC – статически, блоками по m итераций; - DYNAMIC – динамически, блоками по m (каждая нить берет на выполнение первый еще не взятый блок итераций); - GUIDED – размер блока итераций уменьшается экспоненциально до величины m; Время на синхронизацию нитей внутри основного цикла при сборке невязки по треугольникам. Время на синхронизацию при выполнении глобальной редукции при расчете критерия останова итераций Якоби. Различное распределения итераций цикла между нитями 7 Static 6 Dynamic Guided speedup 5 4 3 2 1 0 1 2 3 4 5 threads 6 7 8 9 Зависимость ускорения вычислений от количества доступных нитей OpenMP speedup 7 Кластер СФУ 6 кластер ИВМ 5 кластер ТГУ 4 3 2 1 0 0 2 4 threads 6 8 Сравнение OpenMP и MPI Ускорение: Sp=T1/Tp Среднее время работы программы (сек.), 1 процесс СФУ без подключения с подключением с подключением библиотек MPI OpenMP 46,6 52,4 95,9 + 3% + 47% Среднее время работы программы (сек.), 1 процесс ТГУ без подключения с подключением с подключением библиотек MPI OpenMP 41,1 46,2 82,2 9,00E+01 Гибридная модель: MPI+OpenMP MPI 8,00E+01 MPI+OpenMP time(sec) 7,00E+01 последовательный код 6,00E+01 5,00E+01 4,00E+01 MP (Кластер ТГУ) 3,00E+01 MPI+OpenMP (кластер ТГУ) 1,55E+01 2,00E+01 MPI (кластер СФУ) 1,00E+01 MPI+OpenMP (кластер СФУ) 0,00E+00 acceleration (sec) 0 1 2 3 4 5 6 7 8 9 10 11 12 threads 1,05E+01 5,50E+00 5,00E-01 0 5 10 15 threads 20 25 30 13 Среднее время работы Гибридная модель: MPI+OpenMP. без подключения с по библиотек MPI 46,6 MPI (кластер ТГУ) MPI+OpenMP (кластер ТГУ) MPI+OpenMP (кластер СФУ) MPI (кластер СФУ) speedup 10,5 5,5 0,5 0 5 10 15 threads 20 25 Технология CUDA Nvidia Tesla C2050 Число ядер CUDA: 448 Частота работы ядер CUDA: 1.15 GHz Производительность операций с плавающей запятой с двойной точностью (пиковая): 515 GFlop Производительность операций с плавающей запятой с одинарной точностью (пиковая): 1.03 TFlop Полный объем памяти: 3Gb Частота памяти: 1.5 GHz Пропускная способность: 144 Gb/s Задача Дирихле для уравнения Пуассона методом Якоби конечными разностями Размер сетки (N*N): N Коли-во итераций Время (CPU), с Время (GPU), с Ускорение Время без глоб. редукции (GPU), с Ускорение 272 15896 18,37 3,76 4,89 3,01 6,10 512 29896 124,06 17,90 6,93 15,00 8,27 992 30816 488,40 59,91 8,15 52,38 9,32 1952 26204 1595,60 191,60 8,33 167,51 9,53 2432 25560 2379,20 286,40 8,31 252,89 9,41 3632 24880 5346,28 614,28 8,70 546,65 9,78 4832 24748 9408,43 1079,81 8,71 961,45 9,79 Задача Дирихле для уравнения Пуассона методом Якоби конечными разностями 10000 Время (CPU), с Время, с 8000 Время (GPU), с 6000 4000 2000 0 992 1952 2432 3632 Размерность сетки N*N, N 4832 Численные эксперименты по восстановлению граничной функции Institute of Computational Modeling of SB RAS Киреев И.В., Пятаев C.Ф. Пикселная технология дискретизации акватории Мирового океана // Вычислительные технологии. - 2009. - Т.14, № 5. - C. 30-39. Dynamic recovery ξ (II, with space) наблюдения, наблюдения, xi xixi наблюдения,xi наблюдения, 6,00E-01 8,00E-01 xi, xi, xi, 16,67 20,83 29,17 xi, 0,08 6,67 8,33 12,5 2,5 5 минут минут минут минут минут 25 33,33 xi, xi, 5,00E-01 6,00E-01 4,00E-01 4,00E-01 3,00E-01 2,00E-01 2,00E-01 1,00E-01 0,00E+00 0,00E+00146 -2,00E-01 146 -1,00E-01 -4,00E-01 -2,00E-01 -3,00E-01 -6,00E-01 149 149 152 152 155 155 158 158 161 161 149 152 155 158 161 Решение задачи на установление для определения начальных данных на Г2 За данные "наблюдений" принимались значения свободной поверхности из установившегося решения, а значения граничной d функции "забывались". “Наблюдаемые” данные 2,00E+00 2,00E+00 xi exact 1,60E+00 1,20E+00 1,20E+00 Xi xi 1,60E+00 xi exact xi + noise 10% 8,00E-01 8,00E-01 4,00E-01 4,00E-01 0,00E+00 exact xi xi_obs 1,6 Xi 1,2 1. Smooth 2. With white noise 3. Observation with gaps 0,8 0,4 0,0 -0,4 144 142 140 138 136 134 132 phi 146 phi 2,0 144 142 140 138 136 134 132 130 146 144 142 140 138 136 134 132 130 phi 0,00E+00 Восстановление с «гладкими» данными наблюдений 1 4 2 3 9 2 Xi D 2,5 exact 2 2 1,5 9 0,5 0 0 44 46 48 phi 50 52 54 exact 1 1 42 1 42 44 46 48 phi 50 52 54 Восстановление с «зашумленными» данными наблюдений (I) 5,E+00 1 4,E+00 5 19 1 5 1,50 19 exact d xi exact 1,10 2,E+00 xi d 3,E+00 0,70 1,E+00 0,30 0,E+00 -1,E+00 132,00 137,00 142,00 phi -0,10 132,00 137,00 142,00 phi Восстановление с «зашумленными» данными наблюдений (II) 1 1 30 40 3,8 30 1,4 40 exact d xi exact d xi 2,8 xi + noise 0,9 1,8 0,4 0,8 -0,1 144 142 phi 140 138 136 134 132 144,00 142,00 phi 140,00 138,00 136,00 134,00 132,00 -0,2 Восстановление с данными наблюдений, заданными на части жидкой границы (II) 10 10 3,9 40 40 1,5 80 80 3,1 exact xi 142 xi_obs 2,3 xi d 142 1,1 exact d 0,7 1,5 0,3 0,7 -0,1 144 142 phi 140 138 136 134 132 146,0 144,0 142,0 phi 140,0 138,0 136,0 134,0 132,0 130,0 -0,1 Внутренний источник. Динамическое восстановление Dynamic recovery, ξ (I) наблюдения, xi наблюдения, наблюдения, наблюдения,xi xixi 8,00E-01 0,08 минут xi,xi, xi, xi, 16,67 20,83 29,17 33,33 xi, 6,67 8,33 12,5 2,5 25 5 минут минут минут 6,00E-01 4,00E-01 2,00E-01 0,00E+00 146 -2,00E-01 -4,00E-01 -6,00E-01 149 152 155 158 161 Dynamic recovery ξ (II, with space) наблюдения, наблюдения, xi xixi наблюдения,xi наблюдения, 6,00E-01 8,00E-01 xi, xi, xi, 16,67 20,83 29,17 xi, 0,08 6,67 8,33 12,5 2,5 5 минут минут минут минут минут 25 33,33 xi, xi, 5,00E-01 6,00E-01 4,00E-01 4,00E-01 3,00E-01 2,00E-01 2,00E-01 1,00E-01 0,00E+00 0,00E+00146 -2,00E-01 146 -1,00E-01 -4,00E-01 -2,00E-01 -3,00E-01 -6,00E-01 149 149 152 152 155 155 158 158 161 161 149 152 155 158 161 Dynamic recovery d (II, with space) точное точное точное точное точноеddddd 8,00E-01 d,d,d, d, 16,67 20,83 29,17 33,33 d, 0,08 6,67 8,33 12,5 2,5 25 5 минут минут минут минут 6,00E-01 4,00E-01 2,00E-01 0,00E+00 146 -2,00E-01 -4,00E-01 -6,00E-01 149 152 155 158 161 Спасибо за внимание!