Что такое суперкомпьютеры, зачем они нужны? Какие задачи с их помощью можно решать? Почему считается, что без мощных суперкомпьютеров экономически развитая страна не может существовать? Об этом рассуждает Михаил Владимирович Якобовский, заместитель директора по научной работе Института прикладной математики имени М.В. Келдыша РАН, член-корреспондент РАН.

Михаил Владимирович, тема, которой вы занимаетесь, – суперкомпьютеры. Наверное, слово, которое слышали все, но мало кто понимает, что это такое. Что значит вообще эта приставка «супер»?

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

Один из них – это top500.org. Другой – это российский список и ближнего зарубежья – top50.supercomputers.ru, в которых собраны машины, показывающие максимальную вычислительную мощность. Их отранжировали, проверили на возможность выполнения научных вычислений, на примере решения систем линейных уравнений. Самые мощные системы, которые показали минимальное время решения задачи либо возможность решить самую большую задачу из этого класса, попали в этот список.

Их по миру 500 штук. Но они там сильно не равны в весе и значении, поскольку первые штук пять-десять этих систем – действительно системы, резко отличающиеся от остальных. Они выглядят, условно говоря, как вершина пика.

– В каких странах находятся такие машины?

– Это Соединенные Штаты, Япония, Китай. Это ведущие сегодня державы.

Мы на каком месте в этом списке?

– Мы в этом списке в первую десятку не попадаем. Но мы в первой сотне. Это тоже очень неплохо. Другое дело, что нас там мало.

Давайте объясним читателям, зачем вообще нужны суперкомпьютеры? Почему считается, что без них экономически развитая страна не может существовать?

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

– Каким образом с помощью суперкомпьютера можно создать новые технологии?

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

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

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

Но это не все, на что он пригоден. Я обрисовал основное направление, его традиционное использование. Но в последнее время развиваются другие направления. Суперкомпьютеры устанавливаются у провайдеров, например, телекоммуникационных. У МТС тоже есть суперкомпьютер. Он используется для обработки огромных объемов данных в реальном времени. Элементарно – какой будет потребительский спрос на те или иные товары в зависимости от того, какие товары уже покупались, какие заказывались. Мы это довольно часто видим – мы не успели о чем-то подумать, а нам уже приходит контекстная реклама.

– Это иногда пугает, как будто Большой брат следит за нами. 

– Тут, наверное, не следует бояться, как современный человек не боится огня. Он объективно есть, человек научился его использовать. Глобальный анализ той информации, которая проходит через мобильные телефоны, через компьютерные сети, уже сейчас выполняется и будет выполняться. Просто надо принимать это во внимание и жить в этом мире.

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

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

– И так во всем мире? Не только в нашей стране?

Так во всем мире. Если мы сейчас не говорим о фундаментальных исследованиях, ну, например, об изучении вопросов возникновения и развития Вселенной. В этой области мы проводим свои эксперименты. Но если говорить о коммерческой компоненте, то основная задача научных институтов и отраслей, в том числе научных подразделений серьезных компаний, таких как «Боинг», – это разработать методы, которыми потом инженеры смогут пользоваться. Здесь ниша колоссальная, потому что, несмотря на то что есть системы уровня половины экзафлопса (один экзафлопс – это вычислительная мощность равная одному миллиарду миллиардов операций с плавающей точкой в секунду), до победы еще далеко. Существует буквально несколько программных кодов, которые могут на такой системе выполняться. Их по пальцам одной руки можно пересчитать. Наша задача – создавать именно эти методы. Это задача фундаментальной науки. А дальше они будут использоваться, создавать новые изделия, новые технологии, новые продукты. Вот в этом цикле будет рождаться налоговый возврат. Созданные технологии и продукты на их основе могут окупить суперкомпьютер.

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

– Расскажите, каким образом создаются эти технологии в вашем институте?

В нашем институте создаются именно вычислительные технологии — в первую очередь. Это научный поиск – здесь сложности возникают всегда. Дело в том, что использовать обычные машины, последовательные компьютеры с фон Неймановской архитектурой учились много десятков лет. Там очень многое делается на автомате.

Персональные компьютеры, последовательные вычислительные системы понятно, как использовать, а при использовании суперкомпьютеров возникают принципиально новые проблемы. Суперкомпьютер сегодняшнего дня – это объединение большого количества последовательных систем. Они могут быть разной архитектуры, они могут быть векторные, еще какие-то. Но дело в том, что их много. И я бы сказал, что суперкомпьютер – это завод. Но он не потому завод, что занимает целое здание, в котором один этаж – суперкомпьютер, второй этаж – охлаждение, третий этаж – питание, и еще на улице стоят вентиляторы. Он потому завод, что это система, которой нужно правильно управлять во время вычислений. Нужно скоординировать большое количество процессоров, чтоб они друг друга не ждали, а каждый занимался своим делом. А их на сегодняшний день, исполнительных устройств, в топовых системах порядка миллиарда. Вот здесь очень много проблем возникает, и мы с ними в той или иной степени успешности справляемся.

Но я бы хотел сказать, что здесь есть несколько аспектов. Появляются новые аспекты, связанные именно с количеством систем. Количество, как известно, в качество рано или поздно переходит. Когда-то, лет 15-20 назад, характерное время работы персонального компьютера без выхода на синий экран смерти Windows было порядка дня. Раз в день он останавливался, его надо было перезапускать.

Сейчас это время уже исчисляется неделями. На системном блоке компьютера с одним процессором можно недели спокойно работать – ничего не сломается. А если ломается, то, как правило, это значит, что пользователь что-то не так сделал. А теперь их, процессоров, миллиард одновременно работающих. Какова вероятность того, что за полчаса ни один из них из строя не выйдет? Я скажу – она почти ноль. Больше получаса такая система без сбоев одной из компонент не будет работать. Это оценки международного сообщества. Это интуитивно понятные оценки, потому что составных частей много. Могут быть и аппаратные, и программные сбои. Колоссальной сложности программное обеспечение используется, и оно неизбежно содержит ошибки, приводящие к сбоям.

– И что в этой ситуации делать?

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

Это один из примеров новой проблемы. Она не сегодня возникла, но сегодня она выходит на первый план.

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

– Что же с этим делать? Быстрее учить студентов?

– Безнадежно.  Кто будет учить студентов? Тот, кто будет учить студентов, должен сам успеть научиться. К тому моменту, как он выучится, уже всё изменится.

Выход здесь видится только один – тоже с точки зрения алгоритмов. Как любит говорить один из моих учителей академик Борис Николаевич Четверушкин, надо создавать логически простые, но эффективные алгоритмы. Такие алгоритмы легко портируют с одной системы на другую. Это, конечно, фундаментальная проблема. Но тем не менее практика остается практикой, аппаратные технологии развиваются.

Создавать средства автоматизации – это то, что делали в свое время, когда переходили к компиляторам, когда еще делали систему «Буран». Это то, чем наш институт существенно в этой программе поучаствовал. Были разработаны средства, которые позволяли писать программы на языках высокого уровня. И благодаря этому можно было посадить десятки прикладных специалистов, которые могли писать для компьютеров того времени, а это были суперкомпьютеры.

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

– Давайте поговорим о прикладных задачах, которые вы решаете с помощью своих алгоритмов.

– Например, был международный проект, в котором тестировались программные коды, с высокой точностью моделирующие возникновение звука около летательного аппарата. Во время движения летательного аппарата шумит несколько элементов – шасси на посадке, элементы планера, крыло, закрылки, двигатель. Их можно выделить и разобраться: возникает свист – где он возникает? Что нужно сделать, чтобы этот свист был тише комариного? Цель амбициозная – сделать так, чтобы самолет или вертолет не шумел, чтобы он как бабочка садился, улетал, и мы его не замечали. Машины к этому приближаются, а самолеты пока еще нет, вертолеты тем более. Ударная волна, которая возникает при вращении лопастей вертолетного винта, дает шум на многие десятки километров.

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

Другой пример – нефтедобыча, сейсмическая разведка. Мы находимся на поверхности земли и можем ее потрогать, но мы не можем заглянуть внутрь. Что там, где там пласт нефтяной, где пласт соленой воды, где пресная вода? Как разобраться? Проводится система взрывов, а потом надо проанализировать результат сейсмических замеров – имея точечную информацию по поверхности, по скважинам, восстановить трехмерную картину пласта. Это тоже задача суперкомпьютера.

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

Что делали всегда? Ставили этот образец в экспериментальную установку, под большим давлением прокачивали через нее жидкость, смотрели, что получилось, экспериментально мерили коэффициенты. Это одноразовая операция – после этого образец керна умирает.

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

Какие здесь видятся перспективы у нашей страны?

Во-первых, надо понять, что они нам нужны. Если у нас их не будет, то мы не то что конкурентное преимущество теряем – мы в какой-то момент потеряем вообще понимание, что происходит. Мы не будем знать, насколько далеко ушли наши конкуренты. Отставание на один порядок в производительности доступных нам суперкомпьютеров, в общем, не страшно. У нас всегда были очень хорошие мозги в стране.

– А если на два порядка?

А если на два порядка, то становится страшно, потому что вы перестаете понимать, как пользоваться этой системой. У нас отставание сейчас не очень хорошее. Я сказал, что мы находимся в районе мощности 30-40 петафлопс. А зарубежные мощности – 500 петафлопс. То есть это порядок, но у нас всего несколько таких систем. А если брать большинство, то они отстают еще на порядок - два. В общем, мы в зоне риска.

– Вы сказали о том, что нужно понимание того, что это нам необходимо. Этого понимания нет?

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

У нас есть своя экспертиза в разработке процессоров, в том числе и сетевых. Например, есть «Эльбрус» и «Байкал». «Эльбрус», с одной стороны, по производительности, по стартовой частоте, по техпроцессу уступает зарубежным. А с другой стороны – в нем заложена очень большая интеллектуальная компонента. Он умеет выполнять коды, предназначенные для интеловских процессоров. Причем он не просто их умеет выполнять – он умеет их на лету анализировать, наиболее часто используемые фрагменты кода выявлять. Этого интеловские процессоры не умеют. И он умеет их на лету оптимизировать. На ряде задач он показывает производительность не хуже, а лучше, чем Intel.

И понятно, почему – потому что современные процессоры используются на несколько процентов всего. Мы берем самый хороший процессор и запускаем обычную задачу. Она считает в сто раз медленнее, чем могла бы, потому что очень сложная архитектура процессора, – программа не использует её возможности в полной мере. Так вот, то, что сделали в «Эльбрусе», как раз за счет этого выигрывает. Они поднимают производительность кода наиболее критичного и в результате выигрывают в интеграле. Так что у нас есть что противопоставить зарубежным системам.

У нас есть сеть «Ангара», которую делает НИЦЭВТ и которая вполне конкурентоспособна. Есть два важных параметра – скорость передачи данных и задержка передачи первого байта. Так вот, по задержке мы не проигрываем. А это очень важный параметр для моря задач, где важна скорость передачи коротких сообщений. Так что мы можем и должны делать суперкомпьютеры. У нас есть свои интеграторы, которые на базе зарубежной техники позволяют делать свои системы. Они успешно работают.

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

В Яндексе стоят системы – это Червоненкис, Галушкин, Ляпунов. В Университете стоят системы. Но я хочу обратить внимание – в Яндексе эти системы на основе графических карт. Это очень хорошо для задач искусственного интеллекта, для обработки больших объемов данных. Но это плохо для гидродинамики, газовой динамики. Вообще говоря, неслучайно самая мощная система мира японская – Fugaku. Там нет графических ускорителей, там только процессоры общего назначения. Да, у них очень много ядер, это многоядерные системы, но тем не менее это классическая архитектура. Именно поэтому она «кушает» 30 мегаватт, это сильно больше, чем все остальные потребляют. Вообще, долгое время было ощущение, что больше 20 мегаватт на суперкомпьютер не положено. Так вот они это проигнорировали: а вот у нас 30, и ничего страшного. И вот уже полэкзафлопса есть. Поставят рядом вторую такую систему, и будет экзафлопс.

Но и у нас не всё потеряно. У нас есть шансы при условии вложения в эту сферу.