Автoрcтвo термина «cуперкoмпьютер» (англ. supercomputer) припиcываетcя Джoрджу Мишелю и Сиднею Фернбачу, рабoтавшим в кoнце 60-х гг. XX в. в Ливермoрcкoй нациoнальнoй лабoратoрии и кoмпании Control Data Corporation.
В oбщеупoтребительный лекcикoн этo пoнятие вoшлo благодаря раcпроcтраненноcти компьютерных cиcтем Сеймура Крея. Он разрабатывал вычиcлительные машины, которые, по cути, cтановилиcь оcновными вычиcлительными cредcтвами правительcтвенных, промышленных и академических научно-технических проектов США с середины 60-х гг. до 1996 г.
Суперкомпьютерами принято называть машины с высокой производительностью (свыше 100 млн операций в 1 сек). Сегодня все суперкомпьютеры – это мультипроцессорные системы. Их архитектура может быть векторной, конвейерной или кластерной (последняя наиболее популярна). Ядро системы – так называемые вычислительные узлы (рабочие компьютеры), с несколькими процессорами. Cотни, тысячи таких узлов устанавливаются в специальные шкафы и соединяются между особой сверхбыстрой сетью, используемой для организации параллельного счета. Иногда для этого применяют широкодоступные сетевые технологии, однако, когда речь идет о промышленном решении, то используют специализированные инструменты параллельного счета: InfiniBand, SCI, Myrinet и др.
Кроме этой «сети для счета», узлы, как правило, связывают еще одной сетью – для передачи данных и программ. Часто в суперкомпьютере бывает и третья, отдельная управляющая сеть, регулирующая такие операции, как включение-выключение электропитания, Reset отдельных узлов, пришедших в негодность, и т.д.
Границы между суперкомпьютерным и современным, широко используемым, программным обеспечением сильно размыты, а вместе с проникновением технологий параллелизации (одновременное выполнение нескольких или многих алгоритмов) и многоядерности (наличие в процессоре нескольких ядер) в процессорные устройства персональных компьютеров и рабочих станций продолжают размываться еще больше. Исключительно суперкомпьютерным программным обеспечением можно назвать лишь специализированные программные средства для управления и мониторинга конкретных типов компьютеров, а также единственные в своем роде программы, создаваемые в вычислительных центрах под «собственные», уникальные конфигурации суперкомпьютерных систем.
Операционная система суперкомпьютеров – это, как правило, или Lunix, или другие виды Unix-систем. При составлении суперкомпьютерных программ для организации параллельного счета используются специальные библиотеки, чаще всего – библиотека MPI.
Среди технических проблем, для решения которых используются суперкомпьютеры, – задачи аэрокосмической и автомобильной отраслей, ядерной энергетики, прогнозы перспектив разработки месторождений полезных ископаемых, нефтедобывающей и газовой промышленностей (в т.ч. эффективной эксплуатации месторождений, особенно трехмерных этапов их исследования) и, наконец, конструирование новых микропроцессоров и компьютеров, прежде всего самих супер-ЭВМ.
К примеру, российские суперкомпьютеры семейства «СКИФ» используются для решения научных задач, как фундаментальных, так и прикладных. Эти машины дают возможность для расчетов скорости и траектории гиперзвукового движения космического тела в плотных слоях атмосферы, силы удара астероида о поверхность Земли, в разработке прочности авиационных газотурбинных двигателей, в создании топливных элементов с использованием наноструктурированных материалов, обеспечивающих прямое преобразование водорода и метанола в электрическую энергию, а также в прогнозировании изменений в распределении вечной мерзлоты на территории России, что, в итоге, позволит предсказать развитие и последствия глобального потепления.
Высокопроизводительные вычисления приобретают все большее значение и для областей, непосредственно связанных с качеством жизни населения. Так, уже сегодня решаются задачи распространения загрязнений в городе, а также задачи, связанные с планированием градостроительных работ: благодаря компьютерному моделированию удается быстро определить скрытые под землей полости и дефекты конструкций.
Есть два вида производительности: пиковая (теоретическая, предельная) и реальная. Пиковая производительность – это результат умножения количества процессоров в суперкомпьютере (например, их 1 тыс.) на тактовую частоту каждого процессора (допустим, 2 ГГц; это значит 2 млрд тактов в 1 сек делает каждый процессор) и на максимальное количество команд, которые может выполнить данный тип процессора (допустим, две команды за такт). Максимальная производительность суперкомпьютера с заданными выше параметрами – 4 трлн операций в 1 сек. Это предельная пиковая теоретическая производительность. Величина эта – практически недостижимая.
Более реальные оценки производительности базируются на времени выполнения различных тестов, самыми хорошими из которых являются реальные задачи пользователя. Большую часть времени выполнения программ занимают циклы, именно они и применяются в качестве тестов, например, известные ливерморские циклы. Наиболее популярным тестом производительности признан Linpack, который представляет собой решение системы линейных уравнений методом Гаусса. Поскольку известно, какое количество операций с вещественными числами нужно проделать для решения системы, зная время расчета, можно вычислить выполняемое в 1 сек количество операций.
C 1993 г. в мире ведется рейтинг 500 самых мощных компьютеров – TOP-500. Он обновляется два раза в год – в июне и ноябре. Список ранжируют по реальной производительности, измеренной на задаче Linpack, решающей систему линейных уравнений (с тысячами неизвестных и тысячами уравнений).
Отношение реальной Linpack-производительности к пиковой производительности называется коэффициентом полезного действия суперкомпьютера. Он показывает, насколько удалось выбрать все возможные ресурсы всех процессоров для решения задачи. Как правило, в списке TOP-500 КПД равен 50–60%. Установок с КПД 80% и выше – единицы. По КПД можно судить об уровне научной разработки, это оценка интеллектуальной составляющей суперкомпьютера.
Современные суперкомпьютеры способны выполнять миллионы миллиардов (петафлоп) операций в секунду. Согласно последнему рейтингу Топ-500, только двум суперкомпьютерам в мире удалось одолеть порог производительности в 1 петафлоп – это системы IBM Roadrunner (1,106 петафлоп) и Cray Jaguar (1,059 петафлоп).
Дальнейшая цель разработчиков – производительность в один экзафлоп (миллион триллионов или квинтиллион операций в 1 сек).
По оценкам Донгарры, начальный экзафлопный суперкомпьютер должен будет предстать в 2019 г. Чтобы уложиться в этот срок, уже сейчас необходимо мобилизовать усилия для изменения существующего ПО и разработки новых языков программирования и алгоритмов способных повысить быстродействие систем.
Несмотря на мировую экономическую ситуацию, у разработчиков и производителей суперкомпьютеров есть уверенность в том, что кризис – не помеха для долгосрочных планов по достижению экзафлопного рубежа, тем более что роль этих устройств становятся все более значимой в промышленности.