Суперкомпьютеры и особенности их архитектуры.

16.11.2020 20:25

    К суперкомпьютерам относятся мощные многопроцессорные вычислительные машины с быстродействием сотни миллионов — десятки миллиардов операций в секунду. Создать такие высокопроизводительные компьютеры на одном микропроцессоре (МП) не представляется возможным ввиду ограничения, обусловленного конечным значением скорости распространения электромагнитных волн (300 000 км/с), т.к. время распространения сигнала на расстояние несколько миллиметров (линейный размер стороны МП) при быстродействии 100 млрд операций/с становится соизмеримым со временем выполнения одной операции. Поэтому суперкомпьютеры создаются в виде высокопараллельных многопроцессорных вычислительных систем (МПВС).

    Высокопараллельные МПВС имеют несколько разновидностей.

  • Магистральные (конвейерные) МПВС, у которых процессор одновременно выполняет разные операции над последовательным потоком обрабатываемых данных. По принятой классификации такие МПВС относятся к системам с многократным потоком команд и однократным потоком данных (МКОД или MISD — Multiple Instruction Single Data).
  • Векторные МПВС, у которых все процессоры одновременно выполняют одну команду над различными данными — однократный поток команд с многократным потоком данных (ОКМД или SIMD — Single Instruction Multiple Data).
  • Матричные МПВС, у которых микропроцессор одновременно выполняет разные операции над последовательными потоками обрабатываемых данных —многократный поток команд с многократным потоком данных (МКМД или MIMD — Multiple Instruction Multiple Data).

    В суперкомпьютере используются все три варианта архитектуры МПВС:

  • структура MIMD в классическом ее варианте;
  • параллельно-конвейерная модификация, иначе MMISD, то есть многопроцессорная (Multiple) MISD-архитектура;
  • параллельно-векторная модификация, иначе MSIMD, то есть многопроцессорная SIMD-архитектура.

    Типичным примером массовых многомашинных ВС могут служить компьютер­ные сети, примером многопроцессорных ВС — суперкомпьютеры (рис.1.).

Рис. 1. Схема взаимодействия процессоров в ВС.

 

    Первый суперкомпьютер был задуман в 1960 и создан в 1972 году (машина ILLIAC IV с общей производительностью 20 MFloPS), а начиная с 1974 года лидерство в разработке суперкомпьютеров захватила фирма Cray Research, выпустившая Cray 1 производительностью 160 MFloPS и объемом оперативной памяти 64 Мбайт.

 

Кластерные суперкомпьютеры и особенности их архитектуры.

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

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

    Один из первых проектов, давший имя целому классу параллельных систем - кластеры Beowulf - возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проект Beowulf стартовал летом 1994 года, и вскоре был собран 16-процессорный кластер на процессорах Intel 486DX4/100 МГц. На каждом узле было установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-адаптера. Для работы в такой конфигурации были разработаны специальные драйверы, распределяющие трафик между доступными сетевыми картами.

    Позже в GSFC был собран кластер theHIVE - Highly-parallel Integrated Virtual Environment, структура которого показана на рис. 2. Этот кластер состоит из четырех подкластеров E, B, G, и DL, объединяя 332 процессора и два выделенных хост-узла. Все узлы данного кластера работают под управлением RedHat Linux.

Рис. 2. Структура кластера theHIVE.

    В России всегда была высока потребность в высокопроизводительных вычислительных ресурсах, и относительно низкая стоимость кластерных проектов послужила серьезным толчком к широкому распространению подобных решений в нашей стране. Одним из первых появился кластер «Паритет», собранный в ИВВиБД и состоящий из восьми процессоров Pentium II, связанных сетью Myrinet. В 1999 году вариант кластерного решения на основе сети SCI был апробирован в НИЦЭВТ, который, по сути дела, и был пионером использования технологии SCI для построения параллельных систем в России. Основа технологии SCI - это кольца, состоящие из быстрых однонаправленных линков c пиковой пропускной способностью на аппаратном уровне 400 Мбайт/c. Реальная пропускная способность на уровне MPI-приложений с использованием 32-разрядной шины PCI с частотой 33 МГц достигает 80 Мбайт/c, латентность - порядка 5,6 мкс.

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

    Важной особенностью кластеров является обеспечение доступа любого сервера к любому блоку как оперативной, так и дисковой памяти. Эта проблема успешно решается, например, объединением систем SMP-архитектуры на базе автономных серверов для организации общего поля оперативной памяти и использованием дисковых систем RAID для памяти внешней (SMP — Shared Memory multiprocessing, технология мультипроцессирования с разделением памяти).

    Для создания кластеров обычно используются либо простые однопроцессорные персональные компьютеры, либо двух- или четырех- процессорные SMP-серверы. При этом не накладывается никаких ограничений на состав и архитектуру узлов. Каждый из узлов может функционировать под управлением своей собственной операционной системы. Чаще всего используются стандартные ОС: Linux, FreeBSD, Solaris, Unix, Windows NT. В тех случаях, когда узлы кластера неоднородны, то говорят о гетерогенных кластерах.

    При создании кластеров можно выделить два подхода. 

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

    Основные достоинства кластерных суперкомпьютерных систем:

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

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

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

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

    С 2010-го года несколькими странами ведутся работы, нацеленные на создание к 2020 году экзафлопсных компьютеров, способных выполнять 1 квинтиллион операций с плавающей точкой в секунду и потребляющих при этом не более нескольких десятков мегаватт. Создание суперкомпьютеров, имеющих производительность на уровне 10 экзафлопс, к 2018-2020 годам признано в качестве стратегической научно-технической задачи в наиболее развитых странах мира — в США, Китае, Японии, странах ЕС, России, Индии. К 2021 году корпорации Intel и Cray планируют создать первую в США экзафлопсную систему под названием Aurora для Аргоннской национальной лаборатории Министерства энергетики США.

 

Программные средства.

    Широко распространённым средством для организации межсерверного взаимодействия является библиотека MPI, поддерживающая языки C и Fortran. Она используется, например, в программе моделирования погоды MM5.

    Операционная система Solaris предоставляет программное обеспечение Solaris Cluster, которое служит для обеспечения высокой доступности и безотказности серверов, работающих под управлением Solaris. Для OpenSolaris существует реализация с открытым кодом под названием OpenSolaris HA Cluster.

    Среди пользователей GNU/Linux популярны несколько программ:

  • distcc, MPICH и др. — специализированные средства для распараллеливания работы программ. distcc допускает параллельную компиляцию в GNU Compiler Collection.
  • Linux Virtual Server, Linux-HA — узловое ПО для распределения запросов между вычислительными серверами.
  • MOSIX, openMosix, Kerrighed, OpenSSI — полнофункциональные кластерные среды, встроенные в ядро, автоматически распределяющие задачи между однородными узлами. OpenSSI, openMosix и Kerrighed создают среду единой операционной системы между узлами.

    Кластерные механизмы планируется встроить и в ядро DragonFly BSD, ответвившуюся в 2003 году от FreeBSD 4.8. В дальних планах также превращение её в среду единой операционной системы.

    Компанией Microsoft выпускается HA-кластер для операционной системы Windows. Существует мнение, что он создан на основе технологии Digital Equipment Corporation, поддерживает до 16 (с 2010 года) узлов в кластере, а также работу в сети SAN (Storage Area Network). Набор API-интерфейсов служит для поддержки распределяемых приложений, есть заготовки для работы с программами, не предусматривающими работы в кластере.

    Windows Compute Cluster Server 2003 (CCS), выпущенный в июне 2006 года разработан для высокотехнологичных приложений, которые требуют кластерных вычислений. Издание разработано для развертывания на множестве компьютеров, которые собираются в кластер для достижения мощностей суперкомпьютера. Каждый кластер на Windows Compute Cluster Server состоит из одного или нескольких управляющих машин, распределяющих задания и нескольких подчиненных машин, выполняющих основную работу. В ноябре 2008 года представлен Windows HPC Server 2008, призванный заменить Windows Compute Cluster Server 2003.

    Novell Open Enterprise Server (OES) — сетевая операционная система, «сплав» Novell NetWare и SUSE Linux Enterprise Server; кроме прочего способная создавать смешанные кластеры, в которых ресурсы при сбое могут перемещаться с сервера NetWare на сервер Linux и наоборот.