Укротители вихрей. Математики ставят заслон катастрофам.

За пять лет существования премии Президента Российской Федерации в области науки и инноваций для молодых ученых 26 исследователей стали ее лауреатами. По итогам 2013 года члены Совета при Президенте РФ по науке и образованию проголосовали за пятерых номинантов. Лауреатами были названы, в том числе, Андрей Горобец и Александр Давыдов — кандидаты физико-математических наук, работающие в Институте прикладной математики им. М.В.Келдыша РАН. Одна на двоих премия присуждена им за цикл работ по созданию алгоритмов и программного обеспечения для высокопроизводительных расчетов на современных и перспективных суперкомпьютерах.

Значимая часть этих результатов была получена благодаря грантам РФФИ, который всегда оказывал большую поддержку молодежи. На протяжении всей его 20-летней истории в составе каждого научного коллектива, работающего по грантам, были исследователи до 35 лет. С 2012 года реализуется программа, в рамках которой проходят конкурсы проектов для молодых ученых и ведущих молодежных коллективов. Лауреат президентской премии А.Горобец являлся руководителем одного из таких проектов РФФИ, его коллега А.Давыдов участвовал в двух, поддержанных фондом.
Разработанные математиками алгоритмы для работы с вычислительными комплексами гибридной архитектуры позволяют получить значительные преимущества в производительности при решении самых разных задач математической физики. Результаты уже нашли свое применение в различных отраслях промышленности.
Президентская премия — на двоих, вдвоем отвечали лауреаты и на вопросы корреспондента “Поиска”. Дополняли, уточняли друг друга, спорили между собой, иронизировали, рисовали схемы и в конце посетовали, что из-за осады телевизионных СМИ почти весь день пропал для работы. Надо же, подсмеивались они над журналистами, “за пять минут, коротенько” изложить им суть исследований! Пришлось вступиться за коллег:
— А вы как думали! Конечно, нужно объяснять. Одно дело — конкретный результат прикладных исследований, который можно показать телезрителям. Совсем другое — доказать обычным людям, депутатам да просто налогоплательщикам, что надо выделить финансы на… создание алгоритмов!
Александр Давыдов: — На самом деле мы решаем не какие-то абстрактные задачи. В нашей работе много заинтересованных сторон. Есть конкретные заказчики, которым нужно, например, чтобы “считались” самолеты, ракеты. Мы работаем с экспериментаторами — они “продувают” свои модели в аэродинамических трубах, мы их считаем, сравниваем, придумываем подходы к правильному моделированию. Это нужно для того, чтобы потом конкретное изделие можно было обсчитать.
— И все-таки что представляет собой ваш интеллектуальный продукт, который затем приводит к конкретному результату? Тем более, работа, как следует из ее представления на президентскую премию, носит междисциплинарный характер и выполнена на стыке математики, физики и практического программирования.
А.Д.: — Вычислительный эксперимент связан с использованием компьютеров. Они постоянно совершенствуются, вслед за ними должны совершенствоваться математические модели и алгоритмы. Те, которые мы использовали пять лет назад, сегодня будут просто неэффективны. Поэтому долгий путь адаптации алгоритмов под развивающиеся вычислительные системы и есть суть нашей работы.
— Адаптация алгоритмов — это и есть продукт?
Андрей Горобец: — Нет, давайте все-таки пойдем с конца — не от теории, а от конкретного авиационного приложения наших алгоритмов и конкретных промышленных задач. Например, нужно оптимизировать некое изделие — в нашем случае какие-то части самолета — с целью уменьшить коэффициент лобового сопротивления, увеличить подъемную силу и так далее. Для расчета среднего поля течения вокруг крыла можно использовать модель турбулентности на основе усредненных уравнений, позволяющую свести расчет к небольшой стационарной задаче, обсчитать которую можно и на одном процессоре. Но посмотрите, как происходит естественный отбор в природе: изменились параметры крыла птицы — и меняются все условия ее существования и выживания. В арсенале математиков тоже есть подобный инструмент — так называемый генетический алгоритм, когда мы вносим случайные изменения в конфигурацию крыла самолета и смотрим, что получилось. Каким образом?
Допустим, исследуем профиль крыла летательного аппарата. Пространство вокруг него покрывается сеткой — это совокупность маленьких расчетных ячеек, в которых заданы скорость, давление, плотность и так далее. Расчет состоит в том, чтобы вычислять пошагово изменения в каждой ячейке, обновлять эти значения за очень короткие промежутки времени. Мы как бы запускаем физический процесс течения жидкости или газа, но не в натуре, а посредством математической модели. Чем подробнее расчетная сетка, тем больше ячеек и тем точнее мы можем предсказать поведение жидкости или газа.
Для оптимизации изделия необходимо сделать много маленьких расчетов, чтобы путем естественного отбора прийти к какому-то профилю, который будет отвечать нашим требованиям. Тут не обойтись без суперкомпьютера — можно на 100 процессорах сразу запустить 100 расчетов, и тогда генетический отбор пойдет гораздо быстрее. Но эти задачи не требуют сложного распараллеливания.
А есть другой класс задач — когда какое-то явление исследуется в динамике, воспроизводятся нестационарные процессы. Это значительно увеличивает стоимость расчета, и сотни процессоров уже должны трудиться вместе для решения одной задачи. Самый дорогой тип расчетов — прямое численное моделирование, когда нельзя использовать упрощенные модели и необходимы очень подробные сетки с сотнями миллионов и миллиардами ячеек. Такие задачи — как правило, фундаментального характера — под силу только самым мощным суперкомпьютерам.
— А вот о параллельных вычислениях, пожалуйста, подробнее.
А.Д.: — Распараллелить вычисления — значит заставить множество вычислительных устройств — процессоров — работать над одной задачей. Для этого нужно задействовать суперкомпьютер, то есть большое число высокопроизводительных серверных компьютеров, соединенных друг с другом локальной высокоскоростной магистралью. Например, суперкомпьютер включает в себя тысячи процессоров. Наша задача — распределить между ними обработку миллиардов ячеек и заставить их работать как единое целое….
А.Г.: — …А поскольку память у процессоров не общая, между ними надо организовать обмен по коммуникационной инфраструктуре. Суперкомпьютер — это множество модулей, объединенных в сеть (проводами), которые работают достаточно медленно. Мы должны упаковать сообщение, передать по сети, потом распаковать, обновить данные, синхронизировать расчеты из множества элементов. В этом суть параллельного расчета.
— Суперкомпьютер работает по принципу Цезаря, который одновременно читает, пишет, говорит?
А.Г.: — Нет, Цезарь — это многозадачность, когда одно устройство выполняет много заданий. У нас наоборот — одну задачу выполняют много устройств.
А.Д.: — Если упрощенно, есть задание вырыть траншею длиной 10 метров. Десять землекопов выроют ее быстрее, чем один. Здесь каждый роет свою часть траншеи независимо от других — эффективность 100%. Или другой пример — бригада каменщиков ведет кирпичную кладку. Если один перестанет работать, то у соседних каменщиков вскоре закончится фронт работы, и они тоже будут простаивать. Эффективность резко снизится. Мы должны заставить процессоры взаимодействовать — передавать информацию от одного к другому, обеспечивая друг друга работой.
А.Г.: — Например, у нас есть десятки миллионов ячеек, есть некий исследуемый объект, и мы распараллеливаем задачу на множество вычислительных модулей. Это первый уровень параллельной модели, когда узлы суперкомпьютера разделяют между собой задачу на подзадачи и путем обмена через коммуникационную среду суперкомпьютера они синхронизируются и решают задачу как единое целое. А внутри узлов — многоядерные процессоры, и там тоже надо разделять задачу еще дальше между
процессорными ядрами, но уже в другой параллельной модели. А теперь я перехожу к драме современных параллельных вычислений. (Андрей делает загадочное лицо. — С.К.).
— К драме?
А.Г.: — Драма состоит в том, что в какой-то момент суперкомпьютеры восстали против нас.
— Совсем заинтриговали.
А.Д.: — На самом деле, конечно, не суперкомпьютеры, а их разработчики, точнее — маркетинговые службы компаний.
А.Г.: — Есть мировой суперкомпьютерный рейтинг, все меряются в пиковой производительности — у кого больше. И разработчики стали думать, как наиболее дешевым способом увеличить производительность. Первый негативный шаг — процессоры стали многоядерными. Казалось бы, производительность больше. Но сейчас уже в процессоре 12 ядер, а каналов памяти — 4. То есть мы просто не успеваем брать аргументы из памяти, и нам нечем “кормить” эти ядра. Потом стали расширять векторные регистры, что еще более усложнило задачу. Получается, разработчики процессоров повысили пиковую производительность, а пользоваться ею стало гораздо сложнее.
И уже… “верх цинизма” (подобрав, на их взгляд, верное определение проискам разработчиков, оба лауреата хохочут. — С.К.) — когда они стали использовать для вычислений графический процессор. Он более дешевый по производительности, чем универсальный, но работает по другому принципу. В таком процессоре есть несколько вычислителей. В каждом из них, например, по 32 ядра — казалось бы, это в 32 раза мощнее, но они могут выполнять одновременно… только одну команду! Это уже другой тип параллелизма, который требует полной переработки алгоритма. И еще минус: таких ядер могут быть сотни, даже тысячи, а каналов памяти — опять же всего 4-8. Задержка по доступу к памяти стала очень большой. В конечном итоге наша работа заключалась в том, чтобы и эти ускорители сомнительной архитектуры, и универсальные процессоры заставить работать как единое целое над решением единой задачи. Вот вам и суть работы — адаптировать вычислительные алгоритмы к различным архитектурам современных и перспективных суперкомпьютеров. То есть для каждой архитектуры надо пройти путь от выбора математической модели, численного метода решения до программного продукта и решения конкретных прикладных задач.
А.Д.: — Кстати, это ведь только техническая сторона вопроса, связанная с “железом”, а еще все надо перевести на языки программирования, которые тоже не очень дружелюбны к нам.
— Почему?
А.Д.: — Потому что сложную архитектуру невозможно выразить в простых программных моделях. Разработчики, конечно, пытаются упростить программирование, насколько возможно, но это не всегда способствует повышению эффективности.
А.Г.: — И это еще одна драма современного компьютерного мира. Каждый, кто создает ускоритель, хочет, чтобы пользовались только его устройствами, поэтому средства разработки делает только под свои вычислительные устройства. Получается, что для графического ускорителя одной фирмы — один алгоритм, другой фирмы — другой алгоритм. К тому же архитектура центральных процессоров — одна, графических процессоров NVIDIA — другая, графических процессоров AMD — третья и так далее. Поэтому задача — успевать адаптировать наши алгоритмы под все эти архитектуры, чтобы пользоваться как можно более широким кругом вычислительных систем.
— “Драма” компьютерного мира настолько осложняет жизнь математикам? Может быть, это только наша проблема, поскольку приказала долго жить отечественная электронная промышленность?
А.Д.: — Нет, проблема глобальная — с ней сталкиваются все. Вычислительная техника развивается так, как развивается. Она строится на компонентах, которые можно купить в магазине. Их выпускают миллиардами штук производители процессоров, видеокарт, которые поначалу предназначались для компьютерных игр. Объем продаж рос, а потом производители поняли, что на этих устройствах можно считать, они добавили на ценниках нолик и стали продавать их как вычислительные устройства.
А.Г.: — Усложнение архитектуры объективно и неизбежно. Это непрерывный процесс — гонка за архитектурами, изменение алгоритмов. Мы садаптировали несколько типов алгоритмов газовой динамики к разным алгоритмам, задействовали весь суперкомпьютер “Ломоносов” — 30 тысяч процессоров, более 1000 графических ускорителей.
Спрос на решение этих задач огромен. От исследовательских моделей мы постепенно переходим к созданию методик для применения их в промышленности.
— От алгоритмов — к практическому применению? А конкретный пример для налогоплательщика?
А.Д.: — Скажем, на любой поверхности, которая имеет подъемную силу, будь то крыло или его законцовка, возникает при обтекании вихрь. При больших скоростях — сверх- или гиперзвуковых — вихри настолько мощные, что могут повредить конструкцию самого аппарата или двигателя. Например, широкофюзеляжный двухпалубный четырехдвигательный реактивный пассажирский самолет Airbus А380, взлетая, оставляет за собой два огромных вихря над аэропортом, которые затихают довольно медленно. И если через короткий промежуток времени следом за ним полетит какой-нибудь самолетик типа аэробуса А319, то ему будет очень грустно.
Вихри надо изучать, чтобы знать, как разрушать их. Какими методами, какие модели применять? Мы проводим вычислительный эксперимент с помощью математических моделей, подключаются экспериментаторы, совместно мы изучаем взаимодействие вихря с предметами, ударными волнами, ищем способы воздействия на него. В итоге мы можем сказать, как разрушать вихрь, и тем самым помогаем авиаторам обеспечивать безо-пасность полетов.
— Главный заказчик ваших программ — авиация?
А.Д.: — Не только. Под конкретный заказ может быть поставлена определенная вычислительная задача, связанная с газодинамикой, теплообменом, вентиляцией. Такие расчеты нужны градостроителям — при планировании новых микрорайонов надо знать, как будут распределяться ветра. Можно предупреждать катастрофы, моделируя цунами, прорывы гидротехнических сооружений. Эти методы позволяют рассчитать систему кровотока, что необходимо при проведении операций по имплантации кровеносных сосудов.
А.Г.: — Но есть еще одна драматическая проблема…
А.Д.: — Да-да, добавь драматизма. (Они опять смеются. — С.К.).
А.Г.: — Проблема серьезная. Мы, ученые, разрабатываем методы, а конечные промышленные приложения должны внедряться в коммерческих программных пакетах. Но так вышло, что в России до сих пор таких универсальных расчетных пакетов не существует. Все пользуются дорогостоящими иностранными программами. Мы, казалось бы, разработали, а внедрить… некуда. Поэтому вынуждены сами заниматься такими непрофильными для нас вещами, как разработка качественного отчуждаемого программного обеспечения.
— Ну, это проблема, о которую спотыкаются все ученые. А какие перспективные задачи собираетесь теперь решать?
А.Д.: — Сейчас ждем, какой ускоритель нам опять “подсунут”, чтобы снова все переделать. (Чувства юмора им явно не занимать. — С.К.). А если честно, будем искать гранты на разработку новых математических моделей.
— Уезжать на Запад не собираетесь? Ведь вашу работу считают реально конкурентоспособной в том направлении, которое чаще относят к успехам других стран.
А.Д.: — Нет смысла. У меня был опыт работы в Германии. Но здесь мне нравится коллектив, в котором работаю. А по финансам есть возможность зарабатывать на уровне западных коллег (разумеется, я имею в виду академическую научную среду).
А.Г.: — Кстати, меняются и условия получения грантов. Например, у РФФИ появились очень приличные по размерам гранты, которые позволяют собрать хороший коллектив, сделать стоящую работу.
— А как собираетесь потратить президентскую премию? Она, правда, для вас ополовиненная — 2,5 миллиона рублей на двоих.
А.Д.: — Можно ускорить ремонт в квартире… Съездить на хорошую международную научную конференцию…
А.Г.: — А можно годик в свое удовольствие поработать, без отчетов и прочей бюрократической волокиты…
Вот о чем, оказывается, мечтают математики, которых можно по праву и без натяжки назвать укротителями вихрей…

На верхнем фото — Александр Давыдов, на нижнем фото — Андрей Горобец

Светлана КРЫМОВА
Фото Николая Степаненкова

Нет комментариев