Раздел III. Использование суперЭВМ в математическом
моделировании
УДК 519.684.4
Д.Н. Морозов, Б.Н. Четверушкин, Н.Г. Чурбанова, М.А. Трапезникова МОДЕЛИРОВАНИЕ ЗАДАЧ ФИЛЬТРАЦИИ НА ГИБРИДНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Рассматриваются проблемы использования гибридных вычислительных систем сверхвысокой производительности для решения задач математической физики. Описывается модульный комплекс программ для моделирования процессов многофазной фильтрации слабосжимаемых жидкостей (учитываются капиллярные и гравитационные силы), позволяющий задействовать весь потенциал многоядерных суперкомпьютеров, содержащих графические ускорители вычислений. На примере тестовых расчетов задач просачивания и нефтедобычи показано, что логическая простота предложенных вычислительных алгоритмов и надлежащая программная реализация обеспечивают высокое ускорение вы.
Многоядерная архитектура; графические ускорители; течение в пористой среде; двухфазная жидкость; модульное программирование.
D.N. Morozov, B.N. Chetverushkin, N.G. Churbanova, M.A. Trapeznikova
SIMULATION OF FILTRATION PROBLEMS ON HYBRID COMPUTER
SYSTEMS
In the paper the challenge of using high-performance hybrid computer systems is considered when solving problems of mathematical physics. A modular program system for multiphase slightly compressible fluid filtration process simulation (the capillary and gravity forces are taken into account) is described for involving the entire potential of multicore supercomputers with graphics accelerators. By means of test predictions for infiltration and oil recovery problems it is shown that the logical simplicity of proposed computational algorithms and the competent software implementation provide high speed-up of computations.
Multicore architecture; graphics accelerators; flow in a porous medium; two-phase fluid; modular programming.
Введение. Гибридные вычислительные системы (ГВС) предоставляют уникальные вычислительные возможности для моделирования задач математической физики, позволяют использовать расчетные сетки с количеством узлов, необходимым для проведения высокоточных расчетов. При этом разработка программ для ГВС - самостоятельная, достаточно трудоемкая задача. Большинство классических алгоритмов малоэффективны, поэтому их приходится модифицировать с учетом гибридной архитектуры. Кроме того, средства разработки программ для ГВС, такие как технология CUDA, появились относительно недавно, находятся в стадии совершенствования и не имеют достаточно широкого набора библиотек в отличие от программного обеспечения для классических кластеров. Потому особенно актуальными становятся логически простые и легко модифицируемые для различных архитектур алгоритмы, например, основанные на явных разностных .
Совместное использование для расчётов в гибридных кластерах CPU и GPU предъявляет новые требования к эффективной реализации параллельных алгоритмов. Кроме необходимости минимизации обменов между узлами кластера, добав-
CPU GPU -
.
В данной работе на примере задач двухфазной фильтрации рассматриваются вопросы использования гибридных вычислительных систем в математическом .
1. Математическая модель и вычислительный алгоритм. В [1, 2] предложен новый подход к моделированию течений слабосжимаемых жидкостей в , -мощью явных конечно-р^ностных схем. В качестве математической модели фильтрации использовалась система уравнений, построенная по аналогии с кине-тически-согласованными разностными схемами и квазигазодинамической системой [3]. От традиционной модели [3] она отличается модифицированным уравне-
, -
[4, 5] .
Модифицированное уравнение содержит дополнительные вторые производные по времени и пространству, умноженные на малые параметры, имеющие смысл соответствующих минимальных характерных величин [3,6]:
m Э(pSa) + тд (ppSa) + div(paua) = qa+ divmgrad(paSJ. (1) at at 2
В систему уравнений входит обобщенный закон Дарси для каждой фазы:
u« = -к ka^w ) (grad pa ~Pag ), (2)
Ма
:
Ра=Ра[1 + ДД pa-poJI (3)
а также соотношения между насыщенностями и давлениями фаз:
Sw + Sn = 1 pn - pw = pc (Sw ). (4)
Здесь а- индеке, обозначающий фазу (w - вода, n - NAPL, от англ. Non-Aqueous Phase Liquid); р - плотность флюида; p - давление; S - насыщенность; u - ско-
рость фильтрации; K и k(Sw) - абсолютная и относительная проницаемости; /5 - коэффициент ежимаемости жидкости; m - пористость; ^ - динамическая вяз; g - ; q - ; pc(Sw) - -
лярное давление; p0 и р0 - характерные значения давления и плотности; l - минимальная характерная длина; т - минимальное характерное время; c - величина порядка скорости звука во флюиде.
:
♦ из вычисления плотностей и скоростей фаз на текущем временном шаге из уравнений (3) и (2);
♦ вычисления pJSa№% обеих фаз на следующем временном шаге с помо-
(1);
♦
при помощи полученной в каждой расчетной точке из уравнений (1)-(4) :
+1
Ро. 1+я. (р,/41- р„,,) (1 -V" Ира.И
(5)
^ 1 . а I „ N+1. N+1 „ \ о N+1_ / _ о +1
Р0п 1 + Рп (р. + рс - р0п ( И ~(Рп^п ( ,
которую можно решать, например, методом Ньютона.
1. Реализация параллельного алгоритма на гибридной вычислительной .
программ на языке С++ с использованием библиотек СИБЛ и МР1. Комплекс ориентирован на класс задач, в которых аппроксимация производится на ортогональных сетках в прямоугольных областях с помощью явных разностных схем. В основу положен модульный принцип: комплекс состоит из четырех уровней -, , , используется при отладке. Управляющий уровень содержит функции инициализации расчетов, выделения/освобождения памяти, сохранения результатов в файлы графиков, сохранения/восстановления системы на конкретный момент времени. Расчетный уровень содержит вычислительные функции решаемой задачи на выбранном вычислителе (например, СРи или ОРИ). В расчетный уровень входят модули для расчетов на СРИ или ОРИ двухфазной и трехфазной задач фильтрации в различных постановках. Коммуникационный уровень содержит функции для обменов информацией между расчетными узлами кластера. Уровень тестирования содержит функции модульного тестирования1 и проверки корректности вычис-.
Каждый уровень состоит из модулей. Чтобы перейти от решения двухфазной задачи фильтрации к решению трехфазной задачи, необходимо изменить только один модуль из расчетного слоя. Чтобы производить расчеты на ОРИ, а не на СРИ, . ,
осуществлена возможность использования комплекса для расчетов как на персо-( СРИ ОРИ),
МР1-кластерах и кластерах с гибридной архитектурой.
, -сти для каждого модуля свой компилятор, например, собирать код на СИБЛ с помощью компилятора иуее, код на МР1 - с помощью шр1ее, а также включать модули на различных языках программирования. Таким образом, комплекс защищен от проблемы устаревания языка - при использовании на гибридных кластерах более современного языка программирования, он будет поддержан комплексом без
.
Для получения максимальной эффективности используются различные типы ОРИ: ,
память. Если её недостаточно, то данные размещаются в глобальной памяти. Для переменных, использующихся только при чтении (таких, как параметры задачи,
, ), . подход позволяет значительно уменьшить время доступа к информации, а значит, увеличить эффективность программного комплекса.
2. Результаты расчетов. Для оценки эффективности разработанного программного комплекса были проведены расчеты трехмерной тестовой задачи о просачивании двухфазной (вода - тетрахлорэтилен) жидкости в однородную по-
1 Идея модульного тестирования (или ипк-тестирования) состоит в том, чтобы задавать тесты для каждой функции. При внесении изменений в код данный подход оберегает от ошибок в уже оттестированных местах программы.
ристую среду с использованием модели и алгоритма, описанных в разд. 1 данной .
работе [2].
-1oo.
64 , -
новлено по 2 шестиядерных процессора Intel Xeon X5370, 3 графических ускорителя NVidia Fermi C2050 (в каждом по 448 ядер GPU и 2,5 Гб памяти) и 96 Гб опе-. -онной системы «МВС-Экспресс» и внутренней сети Infiniband, скорость передачи данных между узлами - до 700 Мбайт/с, латентность - порядка 1,2 мкс.
Тестовые расчеты задачи просачивания продемонстрировали следующие результаты по быстродействию. Максимальное число точек расчетной сетки, которое умещается в памяти одного графического ускорителя, составляет порядка 2503 (15 ). 500
рассчитываются за 174 секунды, на трех графических ускорителях одного узла - за 127 секунд, на одном ядре CPU - за 18 878 секунд, на одном шестиядерном CPU -за 3 554 секунды, а на узле, состоящем из двух центральных процессоров, - за 1 781 секунду.
, GPU CPU
составляет 108,5, ускорение одного GPU по сравнению с одним шестиядерным CPU - 20,4. Один узел кластера К-100, состоящий из трех графических плат, рассчитал задачу одного узла, состоящего из двух шестиядерных процессоров, быст-14 .
В следующем эксперименте количество точек расчетной сетки было увеличено в 100 раз и составило около 1,5 млрд. Были проведены расчеты 100 шагов по времени и получены следующие результаты: 80 графических ускорителей произвели расчет за 80 секунд, а 80 ядер CPU - за 5 744 секунды, таким образом, ускорение составило 71,8 раза.
, CPU
коммуникационные модули (в программном комплексе реализованы коммуникации на основе MPI и SHMEM-express), но эффективность расчетов на нескольких CPU CPU ,
нескольких GPU по сравнению с одним GPU. Это связано с дополнительными
/ GPU -
ную память и обратно.
. ,
полученные с помощью разработанного универсального комплекса программ,
,
серьезных ограничений на программную реализацию, тем не менее удачный выбор модели и численного алгоритма и надлежащая их адаптация к архитектуре ГВС позволяют получать на порядок большие ускорения, чем при использовании классических многопроцессорных систем.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Четверушкин Б.Н., Морозов Д.Н., Трапезникова М.А., Чурбанова Н.Г., Шильников Е.В. Об одной схеме для решения задач фильтрации // Математическое моделирование.
- 2010. - Т. 22, № 4. - С. 99-109.
2. . ., . ., . ., . .
//
моделирование. - 2011. - Т. 23, № 7. - С. 52-60.
3. . ., . ., . . . - .: ,
1993.
4. . .
среды // Время, хаос, математические проблемы. - М.: Изд-во МГУ, 2009. - Вып. 4. - . 75-96.
5. Morozov D.N., Chetverushkin B.N., Churbanova N.G., Trapeznikova M.A. An Explicit Algorithm for Porous Media Flow Simulation using GPUs // Proceedings of the Second International Conference on Parallel, Distributed, Grid and Cloud Computing for Engineering, Civil-Comp Press, Stirlingshire, UK, 2011. - P. 19
6. Боресков А.В., Харламов A.A. Основы работы с технологией CUDA. - М.: ДМК-Пресс, 2010. - 232 с.
Статью рекомендовал к опубликованию к.ф.-м.н.; доцент Е.В. Шильников.
- - ; e-mail:
[email protected]; 141700, Московская область, г. Долгопрудный, Институтский пер., 9; тел.: +74954084554; аспирант.
Четверушкин Борис Николаевич - Институт прикладной математики им. М.В. Келдыша РАН; e-mail: [email protected]; 125047, г. Москва, Миусская пл., 4; тел.: +74999781314; академик; директор.
Чурбаиова Наталья Геннадиевна - e-mail: [email protected]; 125047, г. Москва, Миусская ., 4: .: +74999781314; . . .
Трапезникова Марина Александровна - e-mail: [email protected]; 125047, г. Москва, Миусская пл., 4; тел.: +74999781314; с.н.с.
Morozov Dmitry Nikolaevich - Moscow Institute of Physics and Technology; e-mail: [email protected]; 9, Institutskii per., Dolgoprudny, 141700, Moscow Region, Russia; phone: +74954084554; postgraduate student.
Chetverushkin Boris Nikolaevich - Keldysh Institute of Applied Mathematics; e-mail: [email protected]; 4, Miusskaya sq., Moscow 125047, Russia; phone: +74999781314; academician; director.
Churbanova Natalia Gennadievna - e-mail: [email protected]; 4, Miusskaya sq., Moscow, 125047, Russia, phone: +74999781314; senior scientist.
Trapeznikova Marina Aleksandrovna - e-mail: [email protected] [email protected]; 4, Miusskaya sq., Moscow, 125047, Russia; phone: +74999781314; senior scientist.
УДК 004.272.2
..
ОБ ОДНОМ ПОДХОДЕ К РЕАЛИЗАЦИИ ПРОГРАММНОЙ ТРАНЗАКЦИОННОЙ ПАМЯТИ ДЛЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ
Транзакционная память (Transactional Memory, TM) предоставляет неблокирующий синхронизационный управляющий механизм для многопоточных приложений. В настоящее время существует большое количество реализаций (программных, аппаратных и гибрид) . возможности применения транзакционной памяти к построению распределённых вычис-.
памяти DSTM_P1, с помощью которой можно запускать многопоточное приложение, C, .
Распределённые вычисления; распределённая транзакционная память.