Прикладная математика и проблемы использования высокопроизводительных вычислительных систем

УДК 004.3:519.6

Б. Н. Четверушкин

Институт прикладной математики им. М. В. Келдыша РАН,

Московский физико-технический институт

Прикладная математика и проблемы использования высокопроизводительных вычислительных систем

Работа посвящена исследованию связи между структурой вычислительных алгоритмов и возможностью их адаптации на архитектуру систем сверхвысокой производительности. В качестве примера логически простых и эффективных алгоритмов приводятся оригинальные кинетические схемы. Приводятся примеры применения оригинального гибридного суперкомпьютера К—100 для расчёта различных задач.

Ключевые слова: высокопроизводительные вычислительные системы, вычислительные алгоритмы, кинетические схемы.

1. Введение

Характерной чертой современного научного прогресса является бурный рост производительности вычислительных систем, которая увеличивается приблизительно в 1000 раз за 10-11 лет. Предполагается, что вычислительные системы с производительностью 1 ЕХРЬОРБ (1018 операций с плавающей запятой в секунду) появятся в период времени между 2018 и 2020 гг. Уже существующие вычислительные системы с производительностью 1 РРЬОРБ (1015 операций с плавающей запятой в секунду), а особенно системы экзафлопного диапазона ближайшего будущего открывают блестящие перспективы в развитии математического моделирования в интересах науки, технологий, экологии и других областей человеческой деятельности.

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

Однако, невзирая на очевидные радужные перспективы, складывающаяся ситуация далеко не столь оптимистична. Существующий программный продукт, как правило, ограничен диапазоном используемой производительности на одну задачу в 10 ТРЬОРБ или 1013 процессорных ядер. И, несмотря на наличие на сегодняшний день в мире более 10 комплексов с производительностью более 1 РТРЬОРБ, количество задач на них с одновременным использованием 104 ядер (или свыше 100 ТРЬОРБ) на один вариант невелико. Как правило, такие комплексы работают в многозадачном режиме, одновременно производя расчёты 100 и более вариантов.

Данная ситуация не случайна, а связана с принципиальными трудностями использования существенно многопроцессорных вычислительных систем. Эти трудности только усугубляются при переходе к вычислительным системам последующих поколений. К таким относятся системы на процессорах общего назначения с повышенным числом ядер на процессор, системы, использующие в качестве элементов различного рода ускорители [1]. Наиболее применяемым типом ускорителей являются графические платы. Причинами, вызывающими переход к новым архитектурам, являются высокая стоимость и в первую очередь запредельное энергопотребление. Так, вычислительный комплекс с производительностью 1 РТРЬОРБ на четырёхъядерных процессорах общего назначения имеет энергопотребление в диапазоне 3-4 МВт.

Важность решения проблемы использования высокопроизводительных систем следующих поколений хорошо понимается в развитых странах. На этом направлении концентрируются усилия учёных и развивается международная кооперация. Не случайно, первым совместным конкурсом фондов фундаментальных исследований стран 08 (включая Россию) стал конкурс проектов по экзафлопной инициативе, направленный на решение проблемы использования систем с производительностью 1 ЕХРЬОРБ.

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

2. Логически простые алгоритмы

Многопроцессорные высокопроизводительные системы, активное применение которых началось около четверти века тому назад1, в значительной мере сместили акценты требований к алгоритмам прикладной математики [1-3]. К этим требованиям можно отнести, в частности, следующие:

1) внутренний параллелизм, позволяющий разбить задачу на равноценные с точки зрения объёма вычислений части, число которых должно быть не меньше числа используемых процессоров;

2) обеспечение минимизации обмена между процессорами;

3) корректность используемых алгоритмов и моделей, что становится особенно актуальным в случае подробной пространственно-временной дискретизации задачи;

4) логическая простота алгоритмов.

Эти требования приводят к заметному пересмотру существующих алгоритмов. Кроме того, появились новые направления, фактически отсутствующие ранее. К таковым можно отнести построение неструктурированных сеток, динамически адаптивные сетки, рациональное разбиение на подобласти при многопроцессорных вычислениях, визуализация данных высокопроизводительных вычислений. При этом для ряда направлений, таких как визуализация, построение сеток, характерно тесное переплетение приёмов прикладной математики и программирования. Такое переплетение, казалось бы, далёких друг от друга направлений исследований типично для высокопроизводительных вычислений. Все это позволяет сравнивать нынешний этап с периодом начала 50-х годов прошлого века, когда появление первых ЭВМ, по сути дела, в течение нескольких лет привело к созданию основ современной прикладной математики.

Быстрый темп развития вычислительной техники приводит к постоянной смене приоритетов в области создания вычислительных алгоритмов. В этом смысле любопытно проследить изменение точки зрения на требование логической простоты алгоритмов.

Естественно, что адаптация логически несложных алгоритмов на архитектуру многопроцессорных систем более проста. Но это не столь критично для систем, состоящих из относительно небольшого числа процессоров. Главное достоинство таких алгоритмов состояло в том, что при быстрой смене вычислительной техники и неизбежно возникающей при этом в той или иной степени ревизии программного продукта последнюю операцию можно было проводить достаточно быстро и безболезненно. В свою очередь это снимало одну из проблем параллельных вычислений, возникшую на рубеже 80-90-х годов ХХ века

[4].

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

Естественно, что за эти годы планка производительности, после которой системе присваивался статус высокопроизводительной, заметно повышалась. Напомним, что характерная производительность таких систем увеличивается в 1000 раз за 10-11 лет.

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

Типичным примером здесь могут служить явные схемы, идеально адаптируемые к архитектуре различных вычислительных систем. Однако они, как правило, требуют для выполнения условия устойчивости ограничения на допустимый шаг по времени Д£, связанный с характерным размером пространственной аппроксимации Н. Для гиперболических уравнений это ограничение

Д* < Н,

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

Однако для параболических уравнений, описывающих процессы фильтрации, гидро- и газовой динамики, теплопроводности ограничение на временной шаг явной схемы гораздо более жёсткое [5]:

Д* < Н2.

Таким образом, подробная пространственная аппроксимация (109 и более узлов), использование которой в принципе дают высокопроизводительные системы, по сути дела запрещает описание процесса на сколь-нибудь значительном временном отрезке. Другими словами применение высокопроизводительных систем становится бессмысленным. Очевидно противоречие между простотой алгоритма, допускающей адаптацию на архитектуру сложных систем, и его эффективностью.

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

среды, рассмотрим в следующем параграфе. Описание данного подхода, учитывая существующую монографическую литературу [2, 6], будет дано достаточно кратко.

3. Кинетические и Lattice Boltzmann схемы

Как известно, газодинамические параметры, плотность р, скорость, температура и т.д. могут быть получены не только из решения соответствующих уравнений Эйлера или Навье—Стокса, но как моменты одночастичной функции распределения f(t, x, £), которая зависит не только от времени t и пространственных координат х, но и от скорости молекул. Например:

P

f (t, x, С)d(, pu

f

Идея кинетических схем, предложенных в 1983 г., заключается в следующем. Предположим, что в момент времени Р функция распределения представима с помощью

2Под эффективностью параллельной обработки следует понимать процентное отношение времени затра-

ченного на расчёт задачи на одном ядре Р\ к Ж-кратно увеличенному времени необходимому для расчёта

на N ядрах. Естественно, что для большого числа ядер определение Ре/ нельзя произвести непосредственно

экспериментально. Для этого используются различные косвенные процедуры: Ре/ = 100%.

локально-максвелловского распределения /0(і, х, £):

п р(і,х) -«і—і)2

/о

(2тг КГ) 2

где р, и, Г — газодинамические параметры, определяемые с помощью функции распределения на основе моментов (3), К — газовая постоянная. Это распределение слабо меняется по пространству на характерном размере I — длине свободного пробега.

Далее, в течение времени т — характерном времени между столкновениями молекул — совершается бесстолкновительный разлёт частиц газа. Таким образом, на момент времени Р+1 = Р + т значение функции распределения, уже не являющейся локально-максвелловской, определяется с помощью соотношения

р+1

На слое Р+1 используя значения /7'+1 с помощью (3) определяются газодинамические параметры (Р+1, и^+1, Г^+1. По ним строится новая локально-максвелловская функция

.с 3+1

/0 , и вся процедура повторяется вновь.

Балансным соотношением, описывающим бесстолкновительный разлёт, является уравнение

^ = А ^ Ц.

Проинтегрируем балансное уравнение по скоростям молекул с сумматорными инвариан-

>2

тами 1, £, ^2. Для простоты ограничимся пространственно одномерным случаем. Заменим конечные разности по времени с помощью разложения в ряд Тейлора с точностью до членов второго порядка малости по т. При этом получим

др д2р дри д т д

дї + Т дЪ2 + дх дх 2 дх ,

д1>и + гй + Ш ШІ + »и3),

и 2

dt dt2 дх дх 2 дх

дЕ д2 Е д r , „ N1 д т д

U 2(Е + 2р) +

Р

Здесь р — давление, Е — полная энергия, е — внутренняя энергия, у — естественная вязкость.

Квазигазодинамическая система (7) — (9), в дальнейшем КГУ, используется для описания течений вязкого теплопроводного газа. На первый взгляд КГУ кардинально отличается от классических уравнений Навье—Стокса (N—S) по структуре своих членов. Однако, как показывает анализ, различие между КГУ-системой и уравнениями N—S составляют члены второго порядка малости по т. Напомним, что сами N-S-уравнения получаются из кинетического уравнения Больцмана с точностью до членов второго порядка малости. Вместе с тем КГУ-система в течение более чем 25 лет зарекомендовала себя как удобная модель, допускающая простую адаптацию к архитектуре многопроцессорных систем.

Ниже будут рассмотрены одни из последних вариантов алгоритмов на основе КГУ-системы, дающие возможность проводить расчёты на гибридных вычислительных системах, в которых в качестве ускорителей используются графические платы. Однако вначале дадим информацию о родственных кинетическим схемам на основе КГУ-системы Lattice Boltzmann схемах (LBS) широко применяемых в настоящее время для расчётов на высокопроизводительных многопроцессорных компьютерах.

LBS-метод начал развиваться с 1986 г. Наиболее используемой кинетической моделью, положенной в его основу, является уравнение Бхатнагара—Гросса—Крука (БГК):

I = ;

^ ]+1 11,к

;+1,к

Рис. 1. Пятиточечный шаблон ЬББ-схемы

Так же, как и в кинетических схемах, рассматривается связь между значением функции на новом £7'+1предыдущем слое по времени. На рис. 1 изображён шаблон, содержащий 5 лучей, которые связывают значение функции на предыдущем слое по времени.

Каждый луч определяет направление полёта частицы. Естественно, что вдоль каждого луча может быть рассмотрено достаточно большое значение энергий частиц. Разностный аналог уравнения (10), которое вдоль направления луча является обыкновенным дифференциальным, решается вдоль каждого луча и различных значений энергии частиц. Значения газодинамических параметров на новом слое определяется путём суммирования по всем энергиям и направлениям лучей:

Естественно, возможны и другие шаблоны, учитывающие расположение узлов разностных сеток, в том числе и неструктурированных.

Целью данной работы не является анализ достоинств или недостатков тех или иных вариантов кинетических и ЬББ-схем. Обратим лишь ещё раз внимание на общее для кинетических и ЬББ-схем связь между кинетическим и газодинамическим описанием (см. напр. (3) и (11)). Более того балансное соотношение (6) может быть получено непосредственно из БГК модели (10). В определённом смысле КГУ-система (7) — (9) система может рассматриваться как дифференциальное приближение для кинетических и ЬББ-схем.

Рассмотрим дополнительные возможности, которые представляет КГУ-система для моделирования на существенно многопроцессорных системах, в том числе использующих графические платы в виде ускорителей.

Квазигазодинамическая система уравнений (7) — (9) в отличие от параболической системы Навье—Стокса является гиперболической. Однако «ответственные» за гиперболичность члены со вторыми производными по времени малы по сравнению с членами первых производных по времени. Связано это с тем, что характерное значение (для воздуха нормальной плотности) т находится в диапазоне

Таким образом для не слишком быстро текущих газодинамических процессов отношение -т^~, где 1ааз — характерное газодинамическое время, мало. Поэтому вполне естественно

Ьд а в у

отказаться от членов со вторыми производными по времени.

Подобный параболический вариант КГУ-системы позволял успешно использовать явные схемы и тем самым легко адаптировать алгоритмы на архитектуру многопроцессорных систем в диапазоне чисел Маха (М = ^, где С — скорость звука, и — характерная скорость течения) больше, чем 0,15 [2]. То есть в том диапазоне, где начинает сказываться сжимаемость воздуха. Однако для слабосжимаемого газа и несжимаемой жидкости (случай малых М) применение явных схем было невозможно из-за чрезвычайно жёсткого условия устойчивости (2).

Вернёмся вновь к исходной КГУ-системе (7) — (9). Заменим малый коэффициентт, стоящий перед вторыми производными по времени, на заметно большее значение тef с тем, чтобы обеспечить реальный гиперболический характер системы. Вместе с тем этот коэффициент должен быть достаточно малым, чтобы обеспечить малость по порядку величины членов со вторыми производными по времени по сравнению с членами первых производных по времени:

" д2и'

Те/ ді2

В качестве такого значения тєf можно выбрать

< 1.

те4 = с,

где с — характерная скорость звука, к — характерный шаг пространственной сетки. Таким образом, исходная КГУ-система может быть записана в следующем виде:

д2И дИ , „

^ ~ор + =ё1¥ ,

где и — вектор газодинамических переменных и = (р,ри,Е), — вектор потока

газодинамических переменных. Например, для первого уравнения

- и

Следует отметить, что переход от параболических к гиперболическим в традиционных моделях не является чем-то исключительным. Достаточно вспомнить модель гиперболической теплопроводности [7], которая применялась для описания тепловых процессов в среде под воздействием быстротекущих лазерных импульсов. Заметим, что гиперболическая модель более корректна с физической точки зрения, чем модель параболическая [8]. Достаточно вспомнить парадокс бесконечно быстрого распространения тепла, когда влияние выделения тепла в конечной области мгновенно распространяется на бесконечно большие расстояния.

Для решения уравнения (14) можно использовать явные трёхслойные схемы или схемы релаксации потоков [9]. Как показали расчёты, эти явные схемы для задач несжимаемой жидкости обеспечивали курантовское условие устойчивости (1), что позволяло адаптировать алгоритмы к архитектуре гибридных вычислительных систем, использующих в качестве ускорителей графические платы. Более подробно результаты расчётов будут рассмотрены в следующих параграфах. Отметим, что этот приём искусственной гиперболизации успешно применялся для моделирования течения жидкости в пористой среде [9].

4. Гибридные вычислительные системы

Рассматривая перспективы развития вычислительной техники, следует обратить внимание на то, что существующие системы, опирающиеся на использование процессоров с небольшим числом ядер (четыре или шесть), имеют естественный предел по производительности порядка 1 РТРЬОРБ. Заметное, например, в 10 раз, увеличение производительности приведёт к запредельной стоимости проекта, обременительной даже для экономически развитых стран. Однако самой существенной причиной ограничения станет огромное энергопотребление. Так по оценкам энергопотребление системы такого типа, обладающей производительностью 10 РТРЬОРБ, составит около 30 МВт. Так что рядом с вычислительным комплексом необходимо будет строить небольшую электростанцию. Различные проекты, связанные с рациональным использованием энергии, такие как, например, применение горячей воды после охлаждения системы для теплоснабжения ближайших жилых

домов, несколько смягчают остроту проблемы, однако не дают рецепта её кардинального решения.

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

Следует отметить, что уже сейчас существуют процессоры, содержащие несколько сот вычислительных ядер, — это графические платы. Первоначально графические платы предназначались лишь для целей визуализации. Однако в последние годы за счёт создания достаточно сложного программного инструментария CUDA [11] удалось приспособить графические платы GPU для решения задач, описываемых уравнениями математической физики. Такие платы, используемые для решения научно-технических задач, получили название GPGPU (general purpose computing on graphics processing units).

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

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

Во-первых, использование программистских средств CUDA достаточно сложно. Здесь речь идёт не о принципиальной возможности или невозможности создания с их помощью реального программного продукта. Такая возможность существует. Проблема заключается в том, что освоение этих средств достаточно трудоёмко, написанные с помощью CUDA программы являются достаточно объёмными и непрозрачными. Это вызывает заметные проблемы при переписывании давно работающих и отлаженных программ с целью использования их для расчётов на гибридных вычислительных системах.

Вторая трудность состоит в необходимости использования или создания алгоритмов, требующих в основном своём объёме переработки больших массивов однородной информации. Заметим, что первая трудность может быть преодолена за счёт упорства и дополнительных трудозатрат программистов. Кроме того, в настоящее время ведутся интенсивные разработки, позволяющие создать языки программирования более высокого уровня для графических плат [12].

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

3Более того, наличие логически простых и эффективных алгоритмов важно для успешной работы специализированных вычислительных систем. В этих системах, применяемых для специально выбранного круга задач, за счёт аппаратно реализуемых связей между входными и выходными данными удаётся заметно

Рис. 2. Схема суперкомпьютера K-100

5. Гибридный суперкомпьютер К—100 и его применение

В данном параграфе опишем гибридный суперкомпьютер K—100, установленный в ИПМ им. М. В. Келдыша РАН в конце 2010 года. Компьютер назван в честь великого советского математика, механика, главного теоретика космической программы СССР, президента АН СССР Мстислава Всеволодовича Келдыша, который с самого основания Института прикладной математики в 1953 г. до своей смерти в 1978 г. был его директором.

Пиковая производительность компьютера K—100 составляет 107 TFLOPS, максимальное энергопотребление всего вычислительного комплекса 80 кВт. Стоимость компьютера вместе с вспомогательным оборудованием составила 65 млн рублей. Компьютер состоит из 64-х узлов, соединённых с помощью оригинальной коммуникационной системы, использующей гнезда PCI-Express. Кроме того, в наличии имеется дублирующая коммуникационная связь, основанная на использовании традиционных средств Infiniband.

Каждый узел состоит из двух шестиядерных процессоров Intel общего назначения и трёх графических плат Tesla 2050. На каждый узел приходится 96 GBT оперативной памяти. Схема суперкомпьютера K—100 изображена на рис. 2.

Созданию K—100 предшествовала предварительная исследовательская работа на его прототипе МВС-Express.

Общая схема K—100 за исключением оригинальных межузельных коммуникаций лежит в рамках типичной для гибридных компьютеров архитектуры. Сосредоточим основное внимание на результатах применения этого компьютера для решения различных задач.

Одной из хорошо адаптируемых к архитектуре графических плат моделей являются кинетические уравнения, в том числе и уравнения, описывающие перенос излучения. В рамках этой модели возможно организовать логически простой вычислительный процесс, допускающий минимизацию обмена информацией между различными процессорными ядрами. В качестве примера рассматривается моделирование задачи о поглощении 7-излучения. Эта постановка имеет непосредственное отношение к практически важной проблеме неразрушающего контроля. В качестве алгоритма расчёта использовался весовой вариант метода Монте-Карло [13].

На рис. 3 изображена структура распределения поглощённой энергии по энергетическим ячейкам. Отметим, что в рамках этого примера ускорение, которое обеспечивают графические платы Tesla 2050, по сравнению с четырёхъядерным процессором составляло 320 раз.

Правда, данный расчёт проводился с одинарной точностью, достаточной для использу-

повысить производительность. Однако аппаратная реализация таких связей возможна, если их основой являются логически простые алгоритмы.

Рис. 3. Структура распределения поглощённой энергии по энергетическим ячейкам

О 0.2 0.4 0.6 0.8 1

X

Рис. 4. Линии в каверне

емой постановки. При расчёте с двойной точностью эффективность ускорения с помощью графических плат уменьшалась в 4 раза.

В качестве другого примера рассмотрим моделирование пространственно двумерной задачи о течении несжимаемой жидкости в каверне с движущейся верхней крышкой. Эта задача является классическим тестом для различных численных алгоритмов [14].

В качестве алгоритма расчёта использовался гиперболизированный вариант КГУ-систе-мы (14). При использовании явных схем экспериментально наблюдалось условие устойчивости курантовского типа. Достигнутое ускорение за счёт использования графических плат при расчёте с двойной точностью менялось от шестикратного для пространственной сетки, состоящей из 100 х 100 узлов, до восемнадцатикратного для пространственной сетки, состоящей из 1600 х 1600 узлов. Отметим, что эта задача использовалась для апробации языка высокого уровня БУМ [11], позволяющего заметно сократить объем работы при программировании для вычислительных систем, использующих графические платы.

Кроме задачи, рассмотренной выше, комплекс К-100 использовался для моделирования других 2Б- и 3Б- задач, описывающих течение несжимаемой жидкости и сжимаемого газа [9].

Моделирование с использованием неструктурированных сеток более трудоёмко, чем при

Рис. 5. Использование трёхмерной неструктурированной сетки при моделировании задач аэроакустики. Обтекание круглого цилиндра дозвуковой струёй. Сверху: моментальные картины течения — вид сверху

использовании сеток структурированных. Использование графических плат ввиду сложной структуры расположения их вычислительных ядер ещё больше усложняет задачу.

Однако за счёт детального учёта структуры ядер и пересчёта ряда потоков удаётся создать программы, позволяющие использовать графические платы и при расчётах на неструктурированных сетках.

На рис. 5 изображены фрагменты тетраэдральной сетки и поле плотностей при расчёте задачи генерации и распространения акустических возмущений на гибридном суперкомпьютере К—100 [15]. Эта же задача была успешно запущена на комплексе «Ломоносов», установленном в МГУ. При этом использовалась секция комплекса, состоящая из четырёхъядерных процессоров общего назначения.

Для аппроксимации использовалось более 1,2 млрд тетраэдров. Пиковая производительность системы, задействованная для расчёта этого варианта, составляла 330 ТРЬОРВ (более 30 тысяч процессорных ядер). Эффективность параллельной обработки составила более 60%.

Данный пример ещё раз подтверждает тезис о том, что если задача сможет быть адаптирована для расчёта на гибридных системах с ускорителями в виде графических плат, то на основе этого алгоритма с успехом может быть составлена программа для расчётов сверхвысокой производительности на системах, использующих процессоры общего назначе-

Рис. 6. Насыщенность загрязняющего вещества

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

Рассмотрим ещё одну задачу, для моделирования которой использовался комплекс К—100. Эта задача связана с моделированием течений в пористых средах. Рассматривается проникновение токсической жидкости, разлитой на поверхности, в подземные горизонты.

Проблема описывается следующей системой уравнений

+ тд +

и = -кК^Бу])

Ра

Здесь Ба — насыщенность фазы а,т — пористость, КаЗш — относительная фазовая проницаемость, д — ускорение свободного падения, да — источник жидкости, РсБт — капиллярное давление;

Ра = р0а [1 + Ра

^ + 5га = 1,

Рп — Рад = Рс8-ш.

Для моделирования с помощью явных схем использовался приём гиперболизации, описанный в разделе 3. На рис. 6 изображены уровни насыщенности загрязняющего вещества на один из моментов времени.

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

Кроме рассмотренных выше задач комплекс К-100 использовался различными группами специалистов РАН для расчёта задач молекулярной динамики, расчёта уравнений состояния вещества и коэффициентов поглощения излучения, задач описывающих тепловые процессы.

6. Заключение

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

В заключение автор считает приятным долгом выразить глубокую признательность своим коллегам: Ю. П. Смольянову, А. О. Лацису, Ю.С. Елизарову, М. В. Якобовскому, А. В. Горобцу, С. А. Сукову, Е. В. Шильникову, А. A. Давыдову, М. Б. Маркову, М. Е. Жуковскому, Н. Г. Чурбановой, М. А. Трапезниковой, без чьих активных усилий результаты, положенные в основу данной статьи, вряд ли бы увидели свет.

Литература

1. Chetverushkin B.N. The scalable GPGPU-based hybrid computing systems and its applications // Trends in Parallel, Distributed, Grid and Cloud computing for Engineering. / Ed. by P. Ivanyi and B. H. V Topping SAXE-Coburg Publications. — 2011. — P. 159-178.

2. Четверушкин Б.Н. Кинетические схемы и квазигазодинамическая система уравнений — М: Макс-Пресс, 2004. — 332 с.

3. Chetverushkin B.N. Kinetic schemes and Quasi-gasodynamic system of equations // CIMNE, Barcеlona, Spain, 2008.

4. Воеводин В.В. Параллелизм в алгоритмах и программах // Вычислительные процессы и системы, Т. 10 / под. ред. Г. И. Маргуна. — М.: Наука, 1993. — С. 253-270.

5. Самарский А.А. Теория разностных схем — М.: Наука, 1989. — 616 с.

6. Succi S. The lattice Boltzmann equation for fluid dynamics and beyond // Claredon press, Oxford, UK, 2001.

7. Голант В.Е., Жилинский А.П., Захаров Н.Е. Основы физики плазмы — М.: Атомиздат, 1977.

8. Власов А.А. Статистические функции распределения // М.: Наука, 1968.

9. Давыдов А.А., Четверушкин Б.Н., Шильников Е.В. Моделирование течений несжимаемой жидкости и слабосжимаемого газа на многоядерных гибридных вычислительных системах // Журнал выч. мат. и матем. физики. — 2010. — Т. 50, № 12. — C. 2275-2284

10. Четверушкин Б.Н., Морозов Д.Н., Трапезников М.А., Чурбанова Н.Г. Использование явных схем для моделирования процесса двухфазной фильтрации // Мат. моделирование. — 2011. — Т. 23, № 7. — С. 52-60.

11. NVidia CUDA Programming Guide, version 2.1. http://www.nvidia.com/object/cuda/home.html

12. Бахтин В.А., Давыдов А.А., Крюков В.А., Четверушкин Б.Н., Шильников Е.В. Расширение DVM-модели параллельного программирования для кластеров с гетерогенными узлами // ДАН. — (в печати).

13. Жуковский М.Е., У сков Р.В. Моделирование взаимодействия гамма измерения с веществом на гибридных компьютерах. Математическое моделирование вычислительных систем // Жур. Вычисл. математика и математическая физика. — 2010. — Т. 50, № 12, С. 2275-2284

14. Ghia U., Ghia K.N, Shin C.T. High Resolutions for imcompressible flow using Navier— Stokes equations and a multigrid method // J. Comput Physics. — 1982. — V. 48, N 3. — P. 387-411.

І5. Горобец А.В., Суков С.А., Железняков А.О., Богданов П.Б. Четверушкин Б.Н. Применение GPU в рамках гибридного двухуровневого распараллеливания VPI+ OPEN MP на гетерогенных вычислительных структурах jj Вестник ЮУрГУ. — 2011. — № 25(242). — С. 7б-Вб.

Поступила в редакцию 22.09.2011