Что такое суперкомпьютеры: эталон гигантской производительности


Что такое суперкомпьютеры-1

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

Что такое суперкомпьютер — для чего используются чрезвычайно мощные системы

Так что, если вы сегодня построите компьютер размером с комнату и заполните его теми же чипами? Вы получаете суперкомпьютер — компьютер, который в миллионы раз быстрее настольного ПК и способен решать самые сложные научные проблемы в мире. Что отличает суперкомпьютеры от машины, которую вы используете сейчас? Рассмотрим подробнее!

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

Диаграмма
Диаграмма

У кого больше всего суперкомпьютеров?

Более 80 процентов из 500 самых мощных машин в мире можно найти всего в пяти странах: Китае (45,2%), США (22,8%), Японии (5,8%), Франции (3,8%) и Германии (3,2%). На диаграмме для каждой страны самый светлый блок (слева) показывает общее количество суперкомпьютеров в 2017 году, средний блок показывает 2018 год, а самый темный блок (справа, жирный номер красного цвета выше) показывает текущий показатель на 2020 год. Составлено в июне 2020 г. с использованием последних данных TOP500 за июнь 2020 г.

Последовательная и параллельная обработка

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

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

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

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

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

Что такое суперкомпьютеры-3

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

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

Почему суперкомпьютеры используют параллельную обработку?

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

Если вы играете в компьютерные игры, вы знаете, что вам нужен компьютер с быстрым процессором и довольно большим объемом «рабочей памяти»(RAM). Если что-то у вас существенно тормозит, — поменяйте процессор на более быстрый или удвойте объем памяти, и ваш компьютер значительно ускорится, хотя все еще остались ограничения на его скорость. Обычно один процессор может делать только одно действие за раз.

А теперь представьте, что вы ученый, которому поручено прогнозировать погоду, тестировать новое лекарство от рака или моделировать, каким может быть климат в 2050 году. Подобные проблемы доводят даже лучшие в мире компьютеры до предела. Точно так же, как вы можете обновить настольный ПК с улучшенным процессором и большим объемом памяти, вы можете сделать то же самое с компьютером мирового класса.

Даже после апгрейда все еще могут быть ограничения скорости работы процессора. Лучший способ изменить ситуацию — использовать параллельную обработку: то-есть, добавить больше процессоров, разбить проблему на части и заставить каждый процессор параллельно работать над отдельным фрагментом проблемы.

Массивно-параллельные компьютеры

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

С 1990-х годов суперкомпьютеры обычно использовали многие тысячи процессоров в так называемой массово-параллельной обработке. В то время, когда я писал эту статью, в сентябре 2020 года, уже существовал суперкомпьютер Sunway TaihuLight с большим количеством процессоров, чем любой другой в мире. На его борту установлено около 40 960 модулей обработки, каждый с 260 ядрами процессора, что означает в общей сложности 10 649 600 ядер! (В настоящее время это четвертая по мощности машина в мире.)

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

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

Такая простая ситуация, как оплата корзины покупок, это не проблема. Но представьте, что ваша корзина содержит миллиард товаров и 65 000 друзей помогают вам с оформлением заказа. Но если перед вами стоит задача создать например, прогноз погоды в мире на следующую неделю, к тому же она аккуратно разделена на отдельные подзадачи (создание прогнозов для каждой отдельной страны), то это только один момент. Ученые-информатики называют сложные задачи, подобные этой, которые можно легко разделить на независимые части, как параллельные вычисления (EPC).

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

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

Закон вычислений (известный как Amdahl, пионер компьютеров Джина Амдала) объясняет, как та часть задачи, которая остается последовательной, эффективно определяет максимальное улучшение скорости, которую вы можете получить от использования параллельной системы.

Кластеры — группировка компьютеров

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

Что такое суперкомпьютеры-4

На изображении выше, суперкомпьютерный кластер, а точнее; Суперкомпьютер NASA Pleiades ICE — это кластер состоит из 241 108 ядер, в составе которого 158 стоек рабочих станций Silicon Graphics (SGI). Это означает, что его можно легко расширить, чтобы сделать машину более мощной: сейчас она примерно в 15 раз мощнее, чем когда она была впервые построена, то-есть более десяти лет назад. По состоянию на июнь 2020 года это 40-я, самая мощная машина в мире. Фотография Доминика Харта любезно предоставлена Исследовательским центром Эймса НАСА.

Grid — набор кластеров объединенных в сеть

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

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

Эта структура состоит из двух уровней систем, с 11 крупными компьютерными центрами (уровень 1), напрямую связанными с лабораторией CERN через частные сети, которые сами связаны со 160 меньшими компьютерными центрами (уровень 2) по всему миру, в основном университетскими, а также другими исследовательскими центрами, использующими сочетание Интернета и частных сетей.

Другой вид сети является гораздо более специализированным и неформальным, который включает в себя гораздо больше индивидуальных компьютеров, обычно домашних ПК. Вы когда-нибудь принимали участие в онлайн-вычислительных проектах, таких как SETI@home, GIMPS, FightAIDS@home, Folding@home, MilkyWay@home или ClimatePrediction.net? Если да, то вы позволили использовать свой компьютер как часть неформальной специальной сети суперкомпьютеров.

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

Горячая штучка!

Красный суперкомпьютер Cray2, установленный в НАСА в 1989 году.

Cray-2

На фото показан суперкомпьютер Cray-2 (слева), сфотографированный в НАСА в 1989 году, с собственной персональной градирней Fluorinert (справа). Современное состояние середины 1980-х годов, эта конкретная машина могла выполнять полмиллиарда вычислений в секунду.

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

Перегрев (или охлаждение, если хотите) — серьезная проблема для суперкомпьютеров. Ранние суперкомпьютеры Cray имели продуманные системы охлаждения, а знаменитый Cray-2 даже обладал своей собственной отдельной градирней, которая накачивала охлаждающую «кровь» (Fluorinert™) вокруг корпусов, чтобы предотвратить их перегрев.

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

Какое программное обеспечение используют суперкомпьютеры?

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

Самой распространенной операционной системой для суперкомпьютеров раньше была Unix, но теперь ее заменила Linux (Unix — аналогичная операционная система с открытым исходным кодом, первоначально разработанная Линусом Торвальдсом и тысячами добровольцев). Поскольку суперкомпьютеры обычно работают над научными проблемами, их прикладные программы иногда пишутся на традиционных языках научного программирования, таких как Fortran, а также на более популярных и современных языках, таких как C и C ++.

Что на самом деле делают суперкомпьютеры?

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

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

Если вы используете мобильный телефон высокого класса, такой как Android, iPhone или iPod Touch, то считайте, что у вас есть небольшой мощный карманный компьютер, который может запускать программы, загружая различные «приложения», которые являются компьютерными программами, просто под другим именем. Суперкомпьютеры немного другие.

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

В то время как некоторые суперкомпьютеры являются машинами общего назначения, которые могут использоваться для решения широкого круга различных научных задач, некоторые из них предназначены для выполнения очень специфических задач. Таким образом были сконструированы два самых известных суперкомпьютера последнего времени. Машина IBM Deep Blue 1997 года была построена специально для игры в шахматы, в частности против российского гроссмейстера Гарри Каспарова.

А ее более поздняя версия Watson machine, названная в честь основателя IBM Томаса Уотсона и его сына, была разработана для игры Jeopardy. Такие, специально разработанные машины можно оптимизировать для решения конкретных задач; так, например, Deep Blue был создан для поиска в огромных базах данных потенциальных шахматных ходов и оценки того, какой ход был лучшим в конкретной ситуации, в то время как Watson был оптимизирован для анализа сложных общих вопросов, сформулированных на естественном человеческом языке.

Насколько мощны суперкомпьютеры?

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

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

Таблица

Примеры машин, перечисленных в таблице, более подробно описаны в хронологии ниже.

Кто изобрел суперкомпьютеры? Хронология суперкомпьютера

Изучите историю компьютеров, и вы сразу кое-что заметите: ни один человек не может претендовать на изобретение этих удивительных машин. Возможно, это в гораздо меньшей степени относится к суперкомпьютерам, которые, как общеизвестно известно, в огромном долгу перед работой одного человека, Сеймура Крея (1925–1996). Вот краткий обзор суперкомпьютеров, BC и AC — до и после Cray!

С-образный процессор
Характерный С-образный процессор суперкомпьютера Cray-2.

  • 1946: Джон Мочли и Дж. Преспер Эккерт создают ENIAC, электронный числовой интегратор и компьютер в Пенсильванском университете. Первый электронный компьютер общего назначения, он имеет длину около 25 м и весит 30 тонн и, поскольку он используется для решения военно-научных задач, возможно, является самым первым научным суперкомпьютером.

  • 1953: IBM разрабатывает свой первый универсальный компьютер, IBM 701, также известный как Defense Calculator, и продает около 20 таких машин различным правительственным и военным агентствам. 701, является первым серийным суперкомпьютером. Инженер IBM Джин Амдал позже модернизирует машину, чтобы создать IBM 704, машину, способную выполнять 5 KFLOPS (5000 FLOPS).

  • 1956: IBM разрабатывает суперкомпьютер Stretch для Национальной лаборатории Лос-Аламоса. До 1964 года он оставался самым быстрым компьютером в мире.

  • 1957: Сеймур Крей является соучредителем Control Data Corporation (CDC) и считается пионером быстрых, транзисторных, высокопроизводительных компьютеров, включая CDC 1604 (анонсирован в 1958 году) и 6600 (выпущен в 1964 году), которые серьезно оспаривают доминирование IBM в области вычислений для мэйнфреймов.

  • 1972: Крей покидает Control Data и основывает Cray Research для разработки высокопроизводительных компьютеров — первых настоящих суперкомпьютеров. Одна из его ключевых идей — уменьшить длину соединений между компонентами внутри его машин, чтобы сделать их быстрее. Отчасти поэтому первые компьютеры Cray имеют С-образную форму, хотя необычный круглый дизайн (и ярко-синие или красные корпуса) также помогает отличить их от конкурентов.

  • 1976: Первый суперкомпьютер Cray-1 установлен в Национальной лаборатории Лос-Аламоса. Он управляет скоростью около 160 MFLOPS.

  • 1979: Cray разрабатывает еще более быструю модель — восьмиядерный процессор 1.9 GFLOP Cray-2. Если в Cray-1 проводные соединения были максимальной длиной 120 см (~ 4 фута), то в Cray-2 они составляли всего 41 см (16 дюймов).

  • 1983: Thinking Machines Corporation представляет машину массового параллельного соединения с 64 000 параллельных процессоров.

  • 1989: Сеймур Крей основывает новую компанию Cray Computer, где он разрабатывает Cray-3 и Cray-4.

  • 1990-е годы: сокращение расходов на оборону и появление мощных рабочих станций RISC, производимых такими компаниями, как Silicon Graphics, представляют серьезную угрозу финансовой жизнеспособности производителей суперкомпьютеров.

  • 1993: Fujitsu Numerical Wind Tunnel становится самым быстрым компьютером в мире, использующим 166 векторных процессоров.

  • 1994: Компания Thinking Machines подает иск о защите от банкротства.

  • 1995: Cray Computer сталкивается с финансовыми трудностями и обращается с заявлением о защите от банкротства. К сожалению, Сеймур Крей умер 5 октября 1996 года, получив травмы в автомобильной аварии.

  • 1996: Cray Research (первоначальная компания Cray) приобретается Silicon Graphics.

  • 1997: ASCI Red, суперкомпьютер, изготовленный на базе процессоров Pentium от Intel и Sandia National Laboratories, становится первым в мире суперкомпьютером с терафлопами (TFLOP).

  • 1997: Суперкомпьютер IBM Deep Blue побеждает Гэри Каспарова в шахматах.

  • 2008: Суперкомпьютер Jaguar, созданный Cray Research и Oak Ridge National Laboratory, становится первым в мире научным суперкомпьютером в петафлопах (PFLOP). Кратковременно это самый быстрый компьютер в мире, но вскоре его вытеснили машины из Японии и Китая.

  • 2011–2013: Jaguar был тщательно (и дорого) модернизирован, переименован в Titan и ненадолго стал самым быстрым суперкомпьютером в мире, прежде чем уступить место китайской машине Tianhe-2.

  • 2014: Европейский консорциум Mont-Blanc объявляет о планах построить суперкомпьютер с экзафлопсной скоростью (10 18 FLOP) на базе энергоэффективных процессоров для смартфонов и планшетов.

  • 2017: Китайские ученые объявляют, что скоро представят прототип суперкомпьютера exaflop, который, как ожидается, будет основан на Tianhe-2.

  • 2018: В июне 2018, новый Oak Ridge в Summit 200-петафлоп суперкомпьютер отбил первое место в TOP500 рейтинге 500 самых быстрых суперкомпьютеров в мире для Соединенных Штатов.

  • 2020: Хотя США занимают четыре из 10 ведущих позиций в TOP500, Китай доминирует в списке в целом: в июне 2020 года он опередил Соединенные Штаты с 226 машинами до 114; в 2017 году она лидировала с 202 до 143, а годом ранее в обеих странах было по 171 машина каждая.

  • 2020: Японский Fugaku становится лучшим суперкомпьютером в мире с невероятной производительностью 415,5 петафлопс (почти в три раза лучше, чем Summit, предыдущий рекордсмен). Fugaku установлен в Центре вычислительных наук RIKEN (R-CCS) в Кобе, Япония.

Фирменные усилители мощности