IT для самоваров

Статьи об IT и компьютерах без воды

Устройство суперкомпьютера

Содержание

  1. Принципы организации суперкомпьютеров
    1. Базовая кластерная архитектура
    2. Операционная система
    3. Программные средства передачи сообщений
    4. Метакластеры
  2. Распределенные вычисления
    1. Конъюнктурный подход
    2. Квази-конъюнктурный подход

Принципы организации суперкомпьютеров

Базовая кластерная архитектура

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

На кластерном уровне с использованием Т-системы и MPI эффективно реализуются фрагменты со сложной логикой вычисления, с крупноблочным (явным статическим или скрытым динамическим) параллелизмом. Фрагменты с простой логикой вычисления, с конвейерным или мелкозернистым явным параллелизмом, с большими потоками информации, требующими обработки в реальном режиме времени, на кластерных конфигурациях реализуются менее эффективно. Для организации параллельного исполнения задач с подобными фрагментами наиболее адекватна модель потоковых вычислений (data-flow). Кластерная архитектура является открытой и масштабируемой, поскольку не определяет жестких ограничений к программно-аппаратной платформе узлов кластера, топологии вычислительной сети, конфигурации и диапазону производительности.

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

  1. Системная сеть кластера (СС) или System Area Network (SAN) объединяет узлы данного уровня в кластер. Системная сеть кластера обеспечивает масштабируемость кластерного уровня суперкомпьютера, а также пересылку и когерентность данных во всех вычислительных узлах кластерного уровня суперкомпьютера. Системная сеть кластера строится на основе специализированных высокоскоростных линков класса SCI, Myrinet, cLan, Infiniband и др., предназначенных для эффективной поддержки кластерных вычислений и соответствующей программной поддержки на уровне ОС Linux и систем организации параллельных вычислений (Т-система, MPI);

  2. вспомогательная сеть суперкомпьютера (ВС) с протоколом TCP/IP объединяет узлы кластерного уровня в обычную (TCP/IP) локальную сеть (TCP/IP LAN). Вспомогательная сеть выстраивается на основе широко используемых сетевых технологий класса Fast Ethernet, Gigabit Ethernet и др. и предназначена для управления системой, подключения рабочих мест пользователей, интеграции суперкомпьютера в локальную сеть предприятия и/или в глобальные сети. Кроме того, данный уровень может быть использован и системой организации параллельных кластерных вычислений (Т-система, MPI) для вспомогательных целей.

Операционная система

С конца 20-го века операционные системы суперкомпьютеров претерпели серьезные преобразования, основанные на изменениях в архитектуре суперкомпьютеров.Ранние операционные системы были специально адаптированы к каждому суперкомпьютеру для увеличения скорости, современная же тенденция заключается в переходе от внутренних операционных систем к разработкам общего программного обеспечения, такого как Linux.

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

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

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

Программные средства передачи сообщений

Параллельные архитектуры суперкомпьютеров часто диктуют необходимость использования специальных средств обработки. Программные средства для распределенной обработки включают стандартные API, такие как MPI и PVM, VTL и программные решения на основе открытого исходного кода, такие как Beowulf.

В наиболее распространенном сценарии используются такие среды, как PVM и MPI для слабо связанных кластеров и OpenMP для тесно скоординированных компьютеров с общей памятью. Значительные усилия требуются для оптимизации алгоритма для характеристик соединения машины, на которой он будет работать; цель состоит в том, чтобы предотвратить любой из процессоров тратить время на ожидание данных от других узлов. GPGPU имеют сотни процессорных ядер и программируются с использованием моделей программирования, таких как CUDA или OpenCL.

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

Метакластеры

Отдельные кластеры могут быть объединены в единую кластерную конфигурацию – кластер высшего уровня или метакластер. Метакластерный принцип реализует распределенные метакластерные конфигурации на базе локальных или глобальных сетей передачи данных. При этом, естественно, уменьшается степень связности подкластеров метакластерной конфигурации. Системное программное обеспечение метакластера обеспечивает возможность реализации гетерогенных систем, включающих подкластеры различной архитектуры на различных программно-аппаратных платформах. Одним из перспективных программных продуктов, с использованием которого возможна реализация метакластерных конфигураций на подкластерах с различными программно-аппаратными платформами, является IMPI (Interoperable Message Passing Interface). IMPI реализует стандартизованный протокол, обеспечивающий взаимодействие различных реализаций MPI. Это позволяет выполнять общую задачу на различной аппаратуре с использованием настраиваемых поставщиком различных реализаций MPI на каждом узле кластерной конфигурации соответствующего уровня иерархии. Такая возможность полезна в случаях, когда объем вычислений задачи слишком велик для одной системы или когда разные части задачи оптимально выполнять на разных реализациях MPI. IMPI определяет только протоколы, необходимые для взаимодействия различных реализаций MPI, а также может использовать собственные высокопроизводительные протоколы этих реализаций. Задачи реализации метакластерной архитектуры:

Распределенные вычисления

Конъюнктурный подход

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

Самой быстрой системой grid-вычислений является проект распределенных вычислений Folding@home (F@h). F@h сообщил о 101 PFLOPS процессорной мощности x86 по состоянию на октябрь 2016 года. Из них более 100 PFlop-операций выполняются клиентами, работающими на различных графических процессорах, а остальные — на различных системах. Также на платформе Berkeley Open Infrastructure for Network Computing (BOINC) размещается ряд проектов распределенных вычислений. По состоянию на февраль 2017 года BOINC зарегистрировал вычислительную мощность более 166 петафлопс через более 762 тысяч активных компьютеров (хостов) в сети.

По состоянию на октябрь 2016 года, Great Internet Mersenne Prime Search's (GIMPS) представил проект вычислений при помощи простого числа Мерсенна, поиск с использованием которой достиг около 0,313 PFLOPS более чем на 1,3 миллиона компьютеров. Интернет-сервер PrimeNet поддерживает конъюнктурный GIMPS, один из самых ранних и успешных проектов grid-вычислений с 1997 года.

Квази-конъюнктурный подход

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