Студенческий документ № 00113107 из БГТУ «Военмех»

Пользователь пн, 08.01.2018 19:53

А4. ПРИМЕНЕНИЕ СРЕДСТВ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ МЕХАНИКИ ЖИДКОСТИ И ГАЗА НА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ 1. Введение. Существует широкий круг задач механики жидкости и газа, требующих для своего решения значительно б?ольших вычислительных ресурсов, чем может предоставить персональный компьютер. Многим их них необходимы высокое быстродействие, а также обработка и хранение большого объема информации, что предъявляет повышенные требования к оперативной памяти. Такие ресурсы имеются в распоряжении высокопроизводительных вычислительных систем или суперкомпьютеров (High Performance Computing, HPC).

В задачах механики жидкости и газа повышенные требования к производительности и памяти обусловлены сложными нелинейными моделями среды, описываемыми больши?м числом уравнений, пространственным характером задачи и нестационарностью протекающих процессов.

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

Подход к численному решению задач механики жидкости и газа при помощи современных вычислительных технологий и методов параллельного программирования основан на геометрической декомпозиции расчетной области на подобласти, количество которых равняется числу процессоров, расчете каждым процессором своей подобласти и обмене данными между ними на каждом шаге по времени. Связь подобластей обычно осуществляется при помощи введения фиктивных ячеек (их количество зависит от шаблона разностной схемы), которые находятся за границами подобластей и не обрабатываются кодом. Показатели производительности зависят от метода декомпозиции, способа распределения данных по процессорам, и реализации численных методов, применяемых для решения подзадач.

В данной работе рассматривается ряд вопросов, связанных с решением задач механики жидкости и газа на многопроцессорных вычислительных системах с общей и распределенной памятью. Обсуждаются методы геометрической декомпозиции расчетной области и балансировки нагрузки процессоров, способы распределения данных по процессорам, а также особенности параллельной реализации численных методов, применяемых для решения подзадач. Приводятся примеры решения ряда частных задач гидрогазодинамики (решение уравнения Пуассона, течение в каверне с подвижной крышкой, течение в межлопаточном канале газовой турбины) на структурированных и неструктурированных сетках, и исследуется производительность программного кода в зависимости от размера задачи и числа процессоров.

2. Схема решение задачи. Методологический подход к решению задачи при помощи средств параллельной обработки данных заключается в реализации следующих этапов [1]. 1. Декомпозиция (partitioning). Разбиение задачи вычислений и обработки данных на минимальные независимые подзадачи.

2. Коммуникации (communication). Определение структуры подзадач и установление необходимыхсвязей между ними. 3. Кластеризация (agglomeration). Оценка структуры подзадач и их объединение с целью минимизации коммуникаций и повышения производительности.

4. Распределение (mapping). Назначение подзадач конкретным процессорам и обеспечение их равномерной нагрузки. Представленная схема подчеркивает отсутствие строго формализованного подхода к параллельному программированию. На шагах 1 и 2 выделяются параллельные ветви вычислительного алгоритма и закладывается его масштабируемость (гибкость по отношению к числу процессоров). Реализация шагов 3 и 4 требует учета архитектуры многопроцессорной системы для обеспечения мобильности и локальности алгоритма.

Скачать файлы