Параллельная реализация численного решения задачи на восстановление граничной функции для открытых акваторий Карепова Е.Д. Шайдуров В.В. Дементьева Е.В. Суперкомпьютерные технологии математического моделирования Якутск Институт вычислительного моделирования СО РАН
Overview Моделирование распространения поверхностных волн в больших акваториях Задача о граничной функции – задача оптимального управления Параллельный алгоритм Распределенная память: декомпозиция расчетной области, реализация обменов, реализации MPI и стратегия управления памятью Общая память: цикл с зависимостью по данным в теле цикла, проблема операции редукции Сравнение MPI и OpenMP Технология CUDA – пока больше проблем Численные эксперименты по восстановлению граничной функции
Моделирование поверхностных волн в больших акваториях Институт вычислительного моделирования СО РАН
Дифференциальная постановка прямой задачи
Пример расчетной области узлов, элементов, шаг сетки 0.3°
После дискретизации по времени на каждом временном шаге получаем эллиптическую задачу Граничные и начальные условия
Задача на ассимиляцию данных наблюдений В общем случае функция d не известна Для замыкания нашей задачи (1) – (3) рассмотрим дополнительное условие, заданное на части границы Г 0 : ЗАДАЧА. Найти граничную функцию d, компоненты скорости (u,v) и возвышение свободной поверхности ξ, удовлетворяющие системе (1), граничному условию (2), начальным данным (3) и условию замыкания (4). L = f + Bd, (5-6) C =φ ob [Агошков В.И. Методы оптимизации и сопряженные уравнения в задачах математической физики. – М: ИВМ РАН, с.]
Задача оптимального управления L = f + Bd, (5-6) C =φ ob (5)-(6) некорректна
Вариационные уравнения (Эйлера)
Внутренний источник. Динамическое восстановление
Решение задачи на установление для определения начальных данных За данные "наблюдений" принимались значения свободной поверхности из установившегося решения, а значения граничной d функции "забывались". на Г 2
Параллельный алгоритм Институт вычислительного моделирования СО РАН Распределенная память: декомпозиция расчетной области, реализация обменов, реализации MPI и стратегия управления памятью Общая память: цикл без зависимости по данным в теле цикла, проблема операции редукции Сравнение MPI и OpenMP Технология CUDA
2. Обмены данными точка-точка. Неблокирующие обмены: время коммуникаций не зависит от количества процессов, участвующих в обмене Распределенная память. MPI 1. Декомпозиция расчетной области. Без теневых граней: исходная область не включает взаимно перекрывающиеся подобласти. Пересчет значений на границах между подобластями предполагает обмен с дополнительным суммированием при обмене частичной невязкой на каждой итерации Якоби 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 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 TFlops Real performance for Linpack 4.09 TFlops Total main memory Gb File server 24 Тб
Зависимость ускорения вычислений от количества доступных процессоров для различных кластерных систем и способов реализаций двухточечных обменов
Время вычислений
Сравнение двух реализаций MPI и стратегий управления памятью В исследовании была сопоставлена производительность двух популярных реализаций MPI: MPICH2 v.1.2.1p1 OpenMPI v.1.4.1, являющегося «наследником» пакета LAM Рассматриваемая задача тестировалась в двух модификациях выделением памяти под основные массивы и буферы: со статическим с динамическим (calloc/free) Сразу отметим, что вариант со статическим выделением не показал существенного преимущества какого-то одного пакета: расхождения во времени счета и во времени обменов данными во всех опробованных конфигурациях оказались достаточно малы, чтобы не принимать их во внимание.
Ускорение: Теория VS Численный эксперимент
Гибридная модель: MPI+OpenMP Идеология: каждый MPI-процесс порождает несколько нитей OpenMP Мотивация: Широкое распространение распределенных систем с многоядерными узлами, кластеров из SMP-систем; Эффективное использование многоуровневой иерархии памяти: обращение к общей памяти вместо MPI-сообщений; меньший объем вычислений (не требуется дополнительное суммирование при обмене частичной невязкой на каждой итерации Якоби).
Общая память. OpenMP Время на создание/уничтожение нитей. Время на синхронизацию нитей при распределении работы тела цикла. В опции schedule конструкции #pragma omp for можно управлять параметром распределения итераций цикла между нитями («портфель задач»): - STATIC – статически, блоками по m итераций; - DYNAMIC – динамически, блоками по m (каждая нить берет на выполнение первый еще не взятый блок итераций); - GUIDED – размер блока итераций уменьшается экспоненциально до величины m; Время на синхронизацию нитей внутри основного цикла при сборке невязки по треугольникам. Время на синхронизацию при выполнении глобальной редукции при расчете критерия останова итераций Якоби.
Различное распределения итераций цикла между нитями
Зависимость ускорения вычислений от количества доступных нитей OpenMP
Сравнение OpenMP и MPI Ускорение: S p =T 1 /T p + 47%+ 3%
Гибридная модель: MPI+OpenMP
Гибридная модель: MPI+OpenMP.
Технология 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), с Ускорение ,373,764,893,016, ,0617,906,9315,008, ,4059,918,1552,389, ,60191,608,33167,519, ,20286,408,31252,899, ,28614,288,70546,659, ,431079,818,71961,459,79
Задача Дирихле для уравнения Пуассона методом Якоби конечными разностями
Численные эксперименты по восстановлению граничной функции Institute of Computational Modeling of SB RAS
Киреев И.В., Пятаев C.Ф. Пикселная технология дискретизации акватории Мирового океана // Вычислительные технологии Т.14, 5. - C
Dynamic recovery ξ (II, with space)
Решение задачи на установление для определения начальных данных За данные "наблюдений" принимались значения свободной поверхности из установившегося решения, а значения граничной d функции "забывались". на Г 2
Наблюдаемые данные 1.Smooth 2.With white noise 3.Observation with gaps
Восстановление с «гладкими» данными наблюдений
Восстановление с «зашумленными» данными наблюдений (I)
Восстановление с «зашумленными» данными наблюдений (II)
Восстановление с данными наблюдений, заданными на части жидкой границы (II)
Внутренний источник. Динамическое восстановление
Dynamic recovery, ξ (I)
Dynamic recovery, d (I)
Dynamic recovery ξ (II, with space)
Dynamic recovery d (II, with space)
Спасибо за внимание!