Кластеры класса Беовульф
Статья посвящена рассмотрению вопросов, связанных с проектированием, созданием и эксплуатацией кластерных вычислительных комплексов названных Беовульф.
Летом 1994 года Томасом Стерлингом и Доном Бекером, работавшими в центре CEDSIS (Center of Excellence in Space Data and Information Sciences), был построен кластер из 16 процессоров Intel DX4, соединенных сетью Ethernet с дублированием каналов[1]. Машина была названа Беовульф в честь героя скандинавской саги (см. рис.). Машина пользовалась успехом, и их идея создания системы из готовых стандартных компонентов для конкретных вычислительных нужд быстро распространилась в NASA, а также в академической и исследовательской среде. Усилия по разработке таких машин быстро вылились в то, что сейчас называется проект Беовульф. Сейчас такие машины обычно называются “Кластерные ЭВМ класса Беовульф” (Beowulf Class Cluster Computers).
Рисунок. Первый логотип проекта Беовульф. Герой скандинавской саги в окружении нескольких пингвинов, являющимися символами операционной системы Linux.
Очевидно, что развитие кластерных ЭВМ класса Беовульф началось, когда “пришло время”. За предыдущие десять лет произошло множество событий, которые сделали возможным данный проект. Появление широкого компьютерного рынка (автоматизация офисов, домашние приложения, игры и развлечения) обеспечило разработчиков систем новыми типами компонент “за разумную цену”. Промышленность производит полностью собранные подсистемы (микропроцессоры, материнские платы, диски и сетевые интерфейсные карты). Конкуренция на массовом рынке снизила цены и увеличила надежность таких подсистем. Разработка бесплатного математического обеспечения (public domain) и, в частности, операционной системы Linux, компиляторов и средств программирования GNU, а также сред параллельного программирования MPI и PVM сделало аппаратуру независимой от математического обеспечения. Такие проекты, как программа HPCC, обеспечили богатый опыт работы с параллельными алгоритмами. Этот опыт показывает, что получение высокой производительности даже на фирменной параллельной платформе является тяжелой работой и требует от разработчиков принятия необходимости самостоятельной работы. Другим аспектом истории программирования для параллельных платформ является доверие к вычислительным методам и соответственно увеличивающаяся потребность в высокопроизводительных вычислениях. Можно сказать, что комбинация этих условий: аппаратуры, математического обеспечения, опыта и ожиданий создало среду, в которой развитие кластеров Беовульф выглядит естественным шагом в цепи эволюции.
Кроме увеличения производительности микропроцессоров, пожалуй, не менее, а то и более важным для проекта Беовульф является хорошее отношение цена/производительность при использовании сетевой технологии. В истории компьютеров типа МИМД многие академические и коммерческие производители создавали машины на микропроцессорах, но они всегда требовали специализированных микросхем или схем коммуникаций. В академических реализациях это часто приводит к интересным исследованиям в области новых идей, но обычно заканчивается единственным экземпляром. Жизненный цикл таких систем сильно коррелирует с жизненным циклом диссертаций, защищаемых людьми, работающими с ними. Коммерческие производители часто вводят специальные решения или схемы соединений, чтобы улучшить характеристики их ЭВМ или приспособить системы к конкретному сегменту рынку. Использование этих дополнений требует от программистов адаптации к специфической программной модели. Это часто ведет к тупику в развитии математического обеспечения. Ценовая эффективность и поддержка операционной системы Linux для высокопроизводительных сетей ПЭВМ сделали возможным создание сбалансированных систем, построенных целиком из готовых деталей, что сделало базовую архитектуру и программные модели более практичными.
Первая система класса Беовульф была построена с использованием процессоров Intel DX4 и сетевого решения 10Mbit/s Ethernet. Процессоры были слишком быстрыми для обычной сети Ethernet, и коммутаторы были слишком дорогими. Для сбалансированности системы Дон Бекер переписал драйверы Ethernet для Linux и создал дублированный ("channel bonded") Ethernet, в котором сетевой трафик был распределен между двумя или более сетями Ethernet. В 1997 году сбалансированной системой была система из 16 процессоров 200MHz P6, соединенных сетью Fast Ethernet. В 2000 году сбалансированной системой была система из 32 процессоров P-III 550 МГц, соединенных сетью Fast Ethernet с дублированием каналов. По мере того, как технологии Gigabit и Myrinet становятся все более дешевыми, уменьшается потребность в дублировании каналов (по крайней мере в настоящий момент). На середину 2001 года сбалансированной системой является система от 16 до 64 процессоров P-III-1ГГц, соединенными сетью Gigabit или Myrinet-2000. Конкретная сетевая конфигурация сбалансированного кластера будет продолжать меняться и будет по-прежнему зависеть от размера кластера, отношения скорости процессора к пропускной способности сети и текущих цен на компоненты. Важной чертой кластеров Беовульф является то, что такие изменения – тип процессора, сетевая технология, относительная цене компонент – не влияют на модель программирования. Таким образом, пользователи этих систем могут ожидать большей совместимости снизу-вверх, чем это было до сих пор.
Другим ключевым компонентом совместимости снизу-вверх является математическое обеспечение, используемое кластерами Беовульф. Ввиду достаточной развитости ОС Linux, математического обеспечения GNU, а также стандартизации интерфейсов передачи данных PVM и MPI, можно гарантировать программистам, что их программы для Беовульф будут выполняться и на будущих кластерах Беовульф, вне зависимости от конкретных процессоров и сетей. Естественным следствием привязки системного математического обеспечения к аппаратуре является то, что разработка и обновление системного математического обеспечения всего лишь ненамного опережает разработку прикладного математического обеспечения. В большинстве случаев привязка математического обеспечения к программным средствам приводит к тому, что системное математическое обеспечение является постоянно недоведенным. Первый кластер Беовульф был создан для вычислительных нужд в проекте ESS – Науки о Земле и космосе (Earth and space sciences). Он был создан людьми и для людей с опытом параллельного программирования. Многие из них потратили годы в “битве” с поставщиками массивно-параллельных систем и системными администраторами, за детальную информацию о производительности и в “борьбе” с недоработанными средствами программирования и новыми программными моделями. Это привело их к подходу “сделай сам”. Другая проблема, с которой они столкнулись, было то, что доступ к большой машине часто означал доступ к небольшой части ресурсов машины, разделенной между многими пользователями. Для этих пользователей создание кластера, который целиком находится в их распоряжении, означает более эффективную и высокопроизводительную вычислительную платформу. Этот подход вкратце выражается фразой: “Зачем покупать то, что можно сделать самому?” Изучение того, как построить и использовать кластер Беовульф, рассматривается как инвестиция, изучение специфики системы от поставщика рассматривается как всего лишь как зависимость от этого поставщика.
При отсутствии опытных параллельных программистов кластеры Беовульф создаются и используются людьми с минимальным опытом параллельного программирования. В самом деле, кластеры Беовульф обеспечивают университеты с ограниченными ресурсами хорошей платформой для изучения параллельного программирования и недорогой производительной вычислительной системой для ученых. Затраты на установку в университетах минимальны: многие студенты заинтересованы в таких проектах и используют Linux на собственных компьютерах, установка кластера и написание параллельных программ является частью процесса обучения.
В таксономии параллельных ЭВМ кластеры Беовульф находятся между системами с массовым параллелизмом (nCube, CM5, HP V-class, HP SuperDome, IBM SP/2, Cray T3D, Cray T3E, SGI Origin и др.) и сетями рабочих станций. Кластеры Беовульф объединяют сильные стороны обеих архитектур. Системы с массовым параллелизмом обычно больше и имеют межпроцессорные коммуникации с меньшей латентностью, чем кластеры Беовульф. Программистам нужно по-прежнему заботиться о локализации кода, оптимальной загрузке процессоров, декомпозиции и накладных расходах на передачу данных, чтобы получить лучшую производительность. Даже на системах с общей памятью многие программисты используют модель передачи данных. Программа, которая не требует мелкоблочных вычислений и частых обменов данными, может легко быть перенесена на кластер Беовульф и выполняться на нем эффективно. Программы для сетей рабочих станций обычно пытаются потреблять неиспользуемое время на уже установленных рабочих станциях. Программирование для таких сред требует алгоритмов, очень независимых от балансировки параллельных частей и высокой латентности обмена данных. Любая программа, выполняющаяся на сети рабочих станций, может выполняться на кластере по меньше мере не хуже.
Компьютер класса кластер Беовульф отличается от сети рабочих станций несколькими мелкими, но существенными характеристиками. Во-первых, узлы кластера относятся только непосредственно к кластеру. Это помогает упростить проблему эффективного распределения вычислений, потому что производительность отдельных узлов не зависит от внешних факторов. Также, так как коммуникационная сеть, связывающая узлы, изолирована от внешней сети, загрузка сети определяется только приложением, выполняющимся на кластере. Это снимает проблемы, связанные с непредсказуемой латентностью в сети рабочих станций. Все узлы кластера администрируются только в составе кластера. Например, коммуникационная сеть кластера не видна извне, таким образом, единственная аутентификация, требуемая при межпроцессорных коммуникациях, связана с целостностью системы. В сети рабочих станций необходимо заботиться о безопасности сети. Другим примером является математическое обеспечение, обеспечивающее глобальный идентификатор процесса. Это позволяет процессу с одного узла посылать сигналы на другой узел, все в пределах пользовательского домена. Этого нет в сети рабочих станций. Наконец, параметры операционной системы могут быть настроены для улучшения производительности. Например, рабочая станция может быть настроена для лучшего интерактивного взаимодействия (моментальные ответы, короткие буферы), но узлы в кластере могут быть настроены для обеспечения лучшей пропускной способности между задачами, так как они непосредственно не непосредственно взаимодействуют с пользователями.
Будущее проекта Беовульф будет определяться коллективно отдельными организациями, вносящими результаты работы в проект и будущим массового рынка готовых частей. По мере того, как технология производства микропроцессоров продолжает развиваться, удешевляются технологии высокоскоростных сетей и все больше приложений переносится на параллельные платформы, проект Беовульф будет заполнять свою нишу.
Вероятно, существует столько же определений кластера Беовульф, сколько существует людей, строящих или использующих такие системы. Некоторые утверждают, что система может называться Беовульф только, если она построена так же, как оригинальная машина в NASA. Другие бросаются в другую крайность и называют Беовульфом любую сеть из рабочих станций, выполняющую параллельную программу.
Приведем определение, предложенное Язеком Радаевски и Дугласом Эдлайном [2]:
Беовульф – это мультикомпьютерная архитектура, которая может использоваться для параллельных вычислений. Это система, обычно состоящая из одного серверного узла и одного или более клиентских узлов, соединенных при помощи Ethernet или некоторой другой сети. Это система, построенная из готовых промышленных компонент, например ПЭВМ, на которых может работать ОС Linux, стандартных адаптеров Ethernet и коммутаторов. Она не содержит специфических аппаратных компонентов и легко воспроизводима. Беовульф также использует программные продукты, такие как ОС Linux, среды программирования Parallel Virtual Machine (PVM) и Message Passing Interface (MPI). Серверный узел управляет всем кластером и является файл-сервером для клиентских узлов. Он также является консолью кластера и шлюзом во внешнюю сеть. Большие системы Беовульф могут иметь более одного серверного узла, а также возможно специализированные узлы, например, консоли или станции мониторинга. В большинстве случаев клиентские узлы в Беовульфе пассивны. Они конфигурируются и управляются серверными узлами и выполняют только то, что предписано серверным узлом. В бездисковой конфигурации клиентов, клиентские узлы даже не имеют IP-адресов или имен, пока их не назначит сервер. Одно из основных отличий Беовульфа от кластера рабочих станций состоит также в том, что Беовульф работает как одна машина. В большинстве случаев клиентские узлы не имеют клавиатур и мониторов, и могут быть доступны только через удаленное подключение. Узлы Беовульфа могут рассматриваться как элементы процессор+память, которые вставляются в кластер так же как процессор или модуль памяти вставляются в материнскую плату.
Беовульф – это не специфический пакет программ, новая топология сети или новейшая модификация ядра ОС. Беовульф – это технология кластеризации компьютеров, работающих под управлением ОС Linux в разновидность параллельного, виртуального суперкомпьютера. Хотя существует много программных пакетов, таких как модификации ядра, библиотеки PVM и MPI и конфигурационные утилиты, которые делают архитектуру Беовульф более быстрой, простой в конфигурировании и эффективной, можно построить машину класса Беовульф, используя только стандартный дистрибутив Linux, без какого либо дополнительного математического обеспечения. Если имеются два соединенные сетью компьютера под ОС Linux, которые разделяют по меньшей мере файловую систему /home при помощи NFS, и позволяют друг другу выполнять удаленный шелл (rsh), то можно говорить, что это простой кластер Беовульф из двух узлов.
Системы Беовульф строятся из различных частей. Ради производительности могут применяться некоторые не совсем стандартные компоненты (т.е., производимые единственным производителем). Язеком Радаевски и Дугласом Эдлайном предложена следующий подход.
Беовульф класса I:
Этот класс машин строится целиком из стандартных деталей, которые продают многие продавцы компьютерных компонент.
Преимущества систем класса I:
- аппаратура доступна из различных источников (низкие цены, простое обслуживание);
- отсутствие зависимости от одного поставщика;
- поддержка драйверов от сообщества Linux;
- обычно основывается на стандартах (SCSI, Ethernet и др.).
Недостатки систем класса I:
- для наилучшей производительности требуется оборудование класса II.
Беовульф класса II:
Это машина, содержащая эксклюзивные или не широко распространенные детали. Надо заметить, что понятие эксклюзивных деталей может зависеть от страны.
Преимущества систем класса II:
- производительность может быть очень хорошей!
Недостатки систем класса II:
- возможны проблемы с поддержкой драйверов;
- зависимость от поставщика аппаратуры;
- более высокая стоимость, чем системы класса I.
Нельзя сказать, что один класс лучше другого. Все зависит от потребностей и имеющегося бюджета.
Математическое обеспечение кластеров Беовульф создается как дополнения к свободно распространяемым дистрибутивам Linux, которые включают все обеспечение, необходимое для рабочих станций: ядро, утилиты Linux, программы GNU и многие другие пакеты.
ОС Linux представляет собой свободно распространяемую UNIX-подобную операционную систему, которая может работать на широком спектре современных аппаратных архитектур. Linux – это полная многозадачная многопользовательская операционная система. Она достаточно хорошо совместима с рядом стандартов для Unix на уровне исходных текстов, включая IEEE POSIX.1, System V и BSD. Linux также является очень надежной системой, способной работать месяцы без сбоев.
Изначально Linux был написан для архитектуры x86, но он был портирован и на другие архитектуры, включая Compaq Alpha, IBM Power PC, Sun SPARC и MIPS.
Строго говоря, Linux представляет собой ядро операционной системы. Модификации и выпуски новых версий ядра производятся сообществом Linux на бесплатной основе. Значительная часть работы производилась для улучшения сетевой подсистемы ядра и реализации поддержки быстрых сетевых устройств. В настоящее время используются версии ядра 2.2.x и 2..4.x.
Наиболее удобная форма распространения Linux – это дистрибутив, который содержит удобный инсталлятор и дополнительные программные пакеты.
Дистрибутивы для Беовульф включают различные среды программирования и библиотеки, а также отдельные пакеты, например PVM, MPI и DSP. Поддерживаются нити (threads).
В прошлом для кластеров Беовульф использовались дистрибутивы Slackware. В настоящее время для таких кластеров обычно используются дистрибутивы фирм RedHat, Suse, Mandrake и Scyld. Наиболее популярными дистрибутивами являются RedHat, так как они обеспечивают лучшие подбор пакетов, обновление и поддержку. В последнее время растет популярность Scyld, так как это – специализированные дистрибутивы для кластеров.
В схеме Беовульф, так же как и в сетях рабочих станций, на каждом узле выполняется собственная копия ядра, и узлы автономны на уровне ядра.
Загрузка ОС на узлах кластера может производиться как автономно, так и централизованно по сети, с корневого кластера. В последнем случае при загрузке производится динамическое назначение имен и адресов. В первом случае считается, что надежность и живучесть кластера выше, во втором случае упрощается программная поддержка кластера.
Для работы кластера необходимы файловые системы, доступные со всех узлов, то есть распределенные файловые системы. Наиболее часто используется NFS (Network File System) - файловая система, построенная по идеологии клиент/сервер и использующая средства удаленных вызовов RPC. Характерной особенностью NFS является то, что между запросами сервер не сохраняет информацию о клиентах. Это делает систему устойчивой к сбоям клиентских узлов, но увеличивает загрузку сети. К недостаткам NFS также относится снижение эффективности при увеличении числа узлов до сотен. В этих случаях используются альтернативные файловые системы, например, AFS (Andrew File System). Файловая система GFS (Global File System) позволяет разделять пул из различных дисковых устройств и имеет более высокую надежность, производительность и масштабируемость, так как не является клиент-сервером, но требует аппаратной поддержки в виде оптического канала или разделяемых SCSI устройств. Наконец, параллельная виртуальная файловая система PVFS (Parallel Virtual File System) не требует специального оборудования и позволяет организовать свободное дисковое пространство, имеющееся на вычислительных узлах в виде единой файловой системы, осуществляющей параллельный доступ к файлам посредством разделяемой библиотеки. PVFS используется на небольших кластерах, так как является критичной к отказам узлов.
Рассмотрим типичный набор математического обеспечения для кластера класса Беовульф на платформе 32-разрядных процессоров Intel:
- Операционная система Red Hat Linux 6.2 или 7.1, сконфигурированная как однопроцессорная (UP) или многопроцессорная (SMP) в зависимости от типа узла.
- Рекомендованные заплатки для увеличения стабильности и защиты от вирусов.
- Средства объединения сетевых каналов в один (channel bonding). Данная технология предусматривает установку метадрайвера сетевых карт, который назначает одинаковые MAC-адреса двум и более сетевым картам. Сетевые карты подключены к различным физическим сетям (VLAN). Отправляемые пакеты поочередно посылаются на разные сетевые карты. Этот метод позволяет увеличивать пропускную способность до двух раз (т.е., теоретически до 200 Мбит/с при использовании Fast Ethernet), оставляя практически неизменной латентность. В высокоскоростных сетях, таких как Gigabit и Myrinet обычно не используется из-за ограниченной пропускной способности системной шины компьютера.
- Скрипты параллельного администрирования, управления и тестирования кластера bcs-0.2. Позволяют осуществлять проверку состояния и диагностику узлов кластера, создание и модификацию пользовательских бюджетов на узлах кластера, параллельные операции над файлами, и выполнение операций на всех узлах кластера. Скрипты используют стандартные Unix-утилиты rcp и rsh.
-
Расширяемые средства параллельного управления большим кластером SCMS
(Smile Cluster Management System). SCMS содержит графические средства для
администрирования кластера, проверки состояния, конфигурирования, мониторинга.
Другим распространенным средством графического администрирования и мониторинга
является Dogsled.
-
GCC (GNU Compiler Collection) Компиляторы с языков Си, Си++, Objective C и Фортран-77, интегрированные в одном
продукте. В частности, для компиляции ядра Linux необходим компилятор GNU C. Все продукты GNU (GNU’s
Not Unix)
распространяются бесплатно.
- Оптимизирующие коммерческие компиляторы с языков Фортран-90, Фортран-77, HPF Фортран, Си, Си++ фирмы Portland Group, либо компилятор с Фортран-90 фирм Absoft или Intel. Перечисленные компиляторы обеспечивают лучшую оптимизацию программ, чем GNU, особенно для Фортрана.
- Коммуникационные библиотеки PVM, MPICH, LAM-MPI. Поддерживают стандарты интерфейсов прикладных программ для передачи сообщений. Чрезвычайно широко используются для параллельного программирования. Для них разработаны средства графического мониторинга XPVM и XMPI. Эффективность коммуникации зависит от реализации библиотек и от используемых протоколов передачи данных. Поэтому кроме TCP/IP появляются альтернативные протоколы, например, VIA или U-net, либо используются специфические для данной сети, такие как GM для Myrinet.
- Параллельные библиотеки линейной алгебры ScaLAPACK и ATLAS.
- Система анализа и автоматического распараллеливания программ BERT-77. Производит анализ программы на Фортране-77 и, с учетом временных соотношений для выбранного кластера, оценивает эффективность выполнения программы на конкретном оборудовании (BERT lite). Коммерческая версия программы также автоматически создает параллельную программу по выбранной автоматически или вручную схеме.
- Системы очередей. Предназначены для удобного и эффективного использования вычислительных ресурсов кластера при большом количестве пользователей. Используются несколько систем очередей. Наиболее распространенной является OpenPBS (Portable Batch System), так как распространяется бесплатно и имеет поддержку самими пользователями в виде интернет-конференции. Следует отметить также разработки, выполненные в ИПМ и МГУ.
Существуют также реализации архитектуры Беовульф с операционными системами UNIX, отличными от Linux: FreeBSD, Solaris, True64 и даже Windows NT.
Архитектурно кластеры класса Беовульф представляют собой сеть из вычислительных узлов, где каждый узел является относительно недорогим компьютером [4].
В настоящее время происходит стремительное развитие аппаратных средств. Процессоры, чип сеты и прочие аппаратные средства устаревают за несколько лет. При этом новые дорогие технологии быстро становятся дешевле и могут использоваться в недорогих системах.
Узлы кластера могут как специально собираться, так и использоваться уже готовыми. Отличие состоит в том, что готовые “офисные” или “домашние” компьютеры часто содержат аудио карты, динамики, джойстики и другие элементы, которые обычно не нужны в кластерах. Таким образом, составление специфической конфигурации может снизить затраты.
Рассмотрим базовые элементы узла кластера класса Беовульф.
Это критический вычислительный компонент кластеров, так как именно он определяет пиковую производительность системы. В кластерах используются 32- и 64-разрядные процессоры.
Intel Pentium-III и Pentium-4. Эти процессоры ведут происхождение от семейства x86, которые дали основу для появления линии ПЭВМ. Эти процессоры обеспечивают совместимость по командам (и, следовательно, по программному обеспечению) с предыдущими поколениями процессоров и обеспечивают возможность достигать значительной производительности при небольшой цене. Стоит заметить, что изначально операционная система Linux была разработана именно для Intel 30386.
Процессоры Pentium-III имеют тактовую частоту от 450 МГц до 1.13 ГГц, размер кэш-памяти первого уровня (L1) 32 Кб, второго уровня (L2) – 256Кб, либо 512Кб. Частота системной шины 100 или 133 МГц.
Процессоры Pentium-4 имеют тактовую частоту от 1.3 до 1.7 ГГц (планируется более 2 ГГц), но более длинный командный конвейер (до 20 ступеней), чем Pentium-III. Размер кэш-памяти второго уровня (L2) –256Кб. Частота системной шины 400 МГц.
Кроме того, Intel выпускает более производительные версии процессоров Pentium Xeon, отличающиеся от Pentium-4 в первую очередь объемом кэш-памяти, и несколько более высокой ценой. Процессоры Pentium Xeon предназначены в первую очередь для серверов.
AMD Athlon. AMD выпускает недорогие конкурентоспособные по быстродействию c Intel микропроцессоры, которые бинарно совместимы с семейством x86, следовательно все программное обеспечение для x86 может выполняться на AMD Athlon. До последнего времени широкому применению в кластерах мешало отсутствие материнских плат, поддерживающих многопроцессорность, однако сейчас объявлено о начале производства таких плат.
Процессоры AMD Athlon имеют тактовую частоту от 900 МГц до 1.33 ГГц, размер кэш-памяти первого уровня (L1) 128 Кб, второго уровня (L2) – от 512Кб. Частота системной шины 200 или 266 МГц.
Power PC. Эта линия процессоров – результат сотрудничества фирм IBM и Motorola. Серия PowerPC имеет 64-разрядную шину данных и 32-разрядную шину адреса.
Процессоры PowerPC 604e (G2)имеют
тактовую частоту до 375 МГц, размер кэш-памяти первого уровня (L1)
64 Кб, второго уровня (L2) – 1Мб.
Процессоры с низким энергопотреблением PowerPC 750CX
(G3) имеют тактовую частоту от 350 МГц до 700 МГц,
размер кэш-памяти первого уровня (L1) 64 Кб, второго уровня (L2) – 1Мб.
В 2001 году Motorola выпустила процессор PowerPC MPC7450 (G4)
с тактовой частотой от 533 до 733 МГц и трехуровневой кэш-памятью. Основное
использование процессора – Apple PowerMac.
IBM и Motorola выпускают также 64-разрядные производительные процессоры, например, IBM Power RS64-III с частотой 500 МГц, но они используются в основном в мощных серверах.
64-разрядные процессоры являются заметно более дорогим решением, чем 32-разрядные, однако обеспечивают намного большую производительность на вычислительных задачах с плавающей точкой и двойной точностью. При одинаковой тактовой частоте 64-разрядный процессор обеспечивает производительность в Мфлопс в несколько раз большую, чем 32-разрядный.
Compaq Alpha. 64-разрядные процессоры Alpha производятся с 1992 года. Микропроцессоры Alpha 21264A (EV67), и 21264B (EV68), построенные по RISC-архитектуре, представляют собой уже третье поколение и обладают очень высокой производительность на операциях с плавающей точкой, так как содержат два конвейера с плавающей точкой.
Процессоры EV67 имеют тактовую частоту от 600 МГц до 833 МГц, EV68 от 833 МГц до 1.25 ГГц, размер кэш-памяти первого уровня (L1) 64 Кб, второго уровня (L2) – от 2Мб до 8Мб. Частота системной шины 200 МГц. С развитием технологий Compaq планирует в ближайшем будущем достичь тактовой частоты 1,5 или 1,6 ГГц.
Разрабатываемая сейчас следующая версия процессора получила название 21364 (EV7).
Sun UltraSparc-III. Такжке содержит 2 конвейера с плавающей точкой. Может масштабироваться
до 24 процессоров на общей памяти. Процессоры UltraSparc-III имеют тактовую
частоту от 600 МГц до 900 МГц, размер кэш-памяти первого уровня (L1)
102 Кб, второго уровня (L2) – от 1Мб до 8Мб. Частота
системной шины 150 МГц.
Sun планирует в ближайшем будущем достичь частоты
1,5 ГГц.
Intel Itanium. Компания Intel начала поставки своего первого 64-разрядного процессора. Процессор содержит 2 ядра: IA-64 для 64-разрядных операций и Pentium-II для совместимости с линией x86. Ожидается, что этот процессор составит серьезную конкуренцию ранее доминировавшим в этом классе процессорам. Компании IBM, HP и Compaq уже объявили о поставках компьютеров с этим процессором. В настоящее время данный процессор поддерживается следующими операционными системами: HP-UX, IBM's AIX-5L, Microsoft Windows и 64-разрядная версия Linux в дистрибутивах Red Hat, Caldera, SuSE и TurboLinux.
Процессоры Itanium имеют тактовую частоту 733 или 800 МГц (планируется более 1 ГГц). Процессор имеет трехуровневый кэш. Размер кэш-памяти второго уровня (L2) – 2 Мб или 4Мб. Четыре конвейера означают теоретическую пиковую производительность 3.2 Гфлопс, что является рекордом. На тесте Linpack 1000 производительность процессора составила 2380 Мфлопс по данным фирмы Intel. Процессор имеет высокое энергопотребление – 130 Ватт.
Разрабатываемая сейчас следующая версия процессора получила название McKinley.
AMD Hammer. Фирма AMD распространила спецификации своего нового 64-разрядного процессора Hammer, и сообщество Linux приступило к портированию операционной систему на эту платформу. Фирма собирается выпустить процессор к концу 2001 года. Ожидается, что появление этого процессора обострит конкурентную борьбу на данном сегменте рынка и приведет к снижению цен на 64-разрядные процессоры, которые станут распространенной платформой для кластеров класса Беовульф.
В таблице 1 приведены данные о производительности основных процессоров на тестах SPEC CPU2000 по состоянию на начало июня 2001 года.
| Процессор |
SPECint2000 base |
SPECfp2000 base |
| Itanium 800 МГц |
403 |
701 |
| Alpha 21284B 833 МГц |
518 |
590 |
| Pentium4 1.7 ГГц |
573 |
598 |
| Athlon 1.33 ГГц |
482 |
414 |
| UltraSPARC III 900 МГц |
438 |
427 |
| Pentium-III 1 ГГц |
438 |
327 |
Таблица 1. Производительность процессоров на тестах SPEC CPU2000.
Печатная системная плата содержит большинство активных электронных компонент и их связей. Именно системная плата определяет, какое подмножество компонентов может использоваться в узле. Для машин класса Беовульф наиболее важными являются возможности поддержки следующих типов элементов:
- Процессоры. Как правило, материнские платы поддерживают один тип процессоров в определенном диапазоне частот. Это связано с особенностями логики, охлаждением элементов и т.д. Кроме того, материнская плата определяет количество процессоров в узле.
-
Память. Большинство систем используют память SDRAM
(Synchronous Dynamic Random Access Memory). Обычный стандарт памяти – 168-штырьковый модуль DIMM
(Dual Inline Memory Module). Частота системной шины процессор-память для памяти
SDRAM определяется системной платой и составляет 100
или 133 МГц.
В настоящее время появилась более быстродействующая память (DDR)
с частотой системной шины 200 или 266 МГц.
Кроме того, появился новый стандарт памяти RIMM, с
частотой системной шины 400 МГц, хотя в решение является пока еще дорогим.
-
Периферийные контроллеры и шина PCI. Шины
PCI (Peripheral
Component Interconnect) связывает периферийные устройства друг с другом,
с процессором и памятью.
Стандартная шина PCI имеет ширину 32 бита и скорость
работы 33МГц, что дает пропускную способность 132Мбайт/с. Этого оказывается
недостаточно для быстродействующих сетей, таких как Myrinet
или Gigabit. Поэтому используется 64-разрядный вариант шины, а также
шина с частотой работы 66МГц, что в комплексе позволяет повысить скорость
передачи данных до 528Мбайт/с.
- Дисковые контроллеры EIDE и SCSI. Дисковые контроллеры соединяют вторичную память и шину PCI. В кластерах класса Беовульф наиболее часто используются следующие типы вторичной памяти: НЖМД, НГМД и CD-ROM (либо DVD-ROM). Интерфейс SCSI (разновидности Wide, UltraWide, SCSI-2, SCSI-3) является более быстрым, чем EIDE, но существенно более дорогим. Доступ к данным зависит от скорости вращения жесткого диска, которая для дисков стандарта IDE составляет 5400 или 7200 об/мин, а для дисков стандарта SCSI - 10000 или 15000 об/мин.
Исполнение кластера может заметно повлиять на стоимость, реализацию и функционирование. В исполнении кластеров класса Беовульф выделяются два подхода [4]: минималистский NIH LOBOS (Lots of Boxes on Shelves) и использующий монтажные стойки.
Минималистский подход является более экономичным и позволяет получать надежные системы. В этом случае система представляет собой большое количество системных блоков, обычно стоящих на металлических полках. Кластер в монтажных стойках является более дорогим, но позволяет существенно сэкономить пространство. Новые материнские платы, интегрирующие сетевой контроллер Fast Ethernet, контроллер SCSI и видеоадаптер, позволяют использовать корпуса 2U(высотой 76 мм) или 1U(высотой 38 мм), так как не требуют большого количества дополнительных плат. Ожидается, что в будущем возрастет использование именно таких систем, так как площади, отводимые под компьютеры, ограничены.
Сеть превращает набор компьютеров в кластер. Фактически, сеть является шиной кластера, поэтому ее производительность является решающей для производительности кластера.
По опросу интернет-сайта "Top Cluster Computing Systems" наиболее популярными сетевыми стандартами в кластерах являются: Fast Ethernet 36%, Gigabit Ethernet 24%, Myrinet 24%, SCI 8% и Giganet 4% [5].
- Fast Ethernet. Является наиболее дешевым и поэтому распространенным решением, поскольку является самым распространенным стандартом. Обеспечивает скорость передачи данных до 100 Мбит/с, но достаточно высокую латентность. Латентность (зависит от используемой аппаратуры) – от 50 мкс.
- Gigabit Ethernet. Это новый сетевой стандарт с теоретической пиковой скоростью передачи данных до 1 Гбит/с (на практике до 600 Мбит/с при использовании протокола TCP/IP). Существует в двух вариантах: с оптическими проводами и медными. Оптические позволяют обеспечить большую длину соединения, что для кластеров, как правило, не имеет значения, поэтому разумно использовать более дешевые медные соединения. Как и в случае с Fast Ethernet латентность очень сильно зависит от реализации, однако заметно выше, чем в Myrinet или SCI. Так как сеть является стандартной, то следует ожидать заметного снижения цен на сетевые карты и коммутаторы Gigabit.
- Myrinet 2000. Разработан фирмой Myricom, и одобрен как один из стандартов ANSI. В этом стандарте посылающий узел заносит весь маршрут в заголовок сообщения, каждый маршрутизатор удаляет первый байт, используемый как адрес порта. Ограничением Myrinet является блокировка пакетов при занятости или недоступности получателя. Пиковая пропускная способность Myrinet 2000 2 Гбит/с (у предыдущей версии 1.3 Гбит/с) с очень низкой латентностью (менее 5мкс). При программировании используются специализированные протоколы, отличные от TCP/IP (например, при использовании GM пропускная способность достигает 1.9 Гбит/с, а латентность составляет 7мкс), что позволяет сохранить высокую эффективность. При использовании в кластерах показал крайне высокую эффективность, но широкое использование сдерживается высокой ценой.
- SCI (Scalable Coherent Interface). Стандарт изначально создавался для соединения систем с общей памятью. Существуют реализации ЭВМ с общим адресным пространством (NUMA) на основе данной сети. SCI отличается низкой латентностью и хорошей пропускной способностью. Так, выпускаемый фирмой Dolphin Interconnect продукт при использовании ScaMPI достигает пропускной способности более 600 Гбит/с при аппаратной латентности менее 5 мкс. Однако, с развитием альтернативных сетевых стандартов c низкой латентностью и высокой пропускной способностью (особенно Myrinet) использование SCI для кластеров сокращается [4].
- Giganet cLAN. Разработан фирмой Giganet. Пиковая пропускная способность – 1.2 Гбит/с при относительно высокой латентности. После приобретения Giganet компанией Emulex Corporation стали возникать проблемы с поддержкой, в частности отсутствием драйверов для Linux с ядром 2.4.
- QsNet (Quadrix). Производится фирмой Quadrics Supercomputers World Ltd. Именно эта сеть используется фирмой Compaq для создания быстродействующих кластеров Пиковая пропускная способность каналов – 2.7 Гбит/c в каждом направлении. Латентность - порядка 2 мкс.
На самом деле сравнение характеристик сетей дело достаточно сложное и неблагодарное, так как эффективность их использования зависит от конкретной реализации, как аппаратной (в том числе, процессоров, чип сетов), так и программной. Для получения объективной картины необходимо сравнение в идентичных компьютерах и программных средах.
В МСЦ имеется опыт создания и эксплуатации кластеров Беовульф как класса 1 – МСЦ-2000, так и класса 2 - МВС-1000М.
В ГУ МСЦ создана кластерная вычислительная система, которая обеспечивает возможность высокоскоростной параллельной обработки данных и обладает эффективной масштабируемостью. Кластер состоит из 16 процессоров Intel Pentium III-550, установленных на двухпроцессорных материнских платах. Система содержит 16 Гбайт оперативной памяти, по 512 Мбайт на системный блок. Корневой блок содержит НЖМД 19 Гбайт. Остальные блоки содержат НЖМД 4 Гбайт. Сетевые соединения осуществляются с помощью сдвоенного интерфейса (channel bonding) Fast Ethernet. Для соединений используются 2 сетевых коммутатора 3com Superstack II Switch 3300 с максимальной суммарной пропускной способностью 3.2 Гбит/c.
Система работает под управлением операционной системы Red Hat Linux 6.2. Каждый модуль имеет свою копию операционной системы на жестком диске, что упрощает загрузку и повышает живучесть кластера. Для параллельного программирования кластера используется среда LAM-MPI, MPICH, PVM, система автоматического распараллеливания BERT-77 и компиляторы GNU с языков программирования Си (gcc), Си++ (g++) и Фортран 77. Жесткий диск, установленный на корневом модуле имеет большую емкость. Пользовательские каталоги находятся на нем и доступны со всех модулей при помощи NFS.
Кластер состоит из 48 двухпроцессорных вычислительных модулей (т.е. 96 процессоров). В настоящее время происходит модернизация кластера до 384 модулей (768 процессоров), что обеспечит пиковую производительность 1 Тфлопс.
Вычислительный модуль содержит 2 процессора Alpha 21264A с тактовой частотой 667 МГц, ОЗУ объемом 2 Гбайт, жесткий диск объемом 20 Гбайт. Каждый модуль подключен к коммутатору Myrinet.
При помощи коммутаторов Myrinet вычислительные модули объединяются в логическую решетку. Для прочих сетевых сервисов используется сеть Fast Ethernet, что позволяет не замедлять передачу данных при параллельной работе выполнением системных сетевых сервисов.
В качестве консоли используется рабочая станция, также построенная на процессоре Alpha 21264.
Система работает под управлением операционной системы Red Hat Linux 6.2. Для параллельного программирования кластера используется среда GM MPI, адаптированная под Myrinet. Языки программирования – Си и Фортран 90 фирмы Compaq, а также свободно распространяемые компиляторы GNU с языков программирования Си (gcc), Си++ (g++) и Фортран 77 (g77)
Стоимость создания и эксплуатации кластеров Беовульф разумеется значительно превосходит стоимость его компонентов. Кроме того, кластер проходит три стадии: создания, эксплуатации и модернизации, каждая из которых подразумевает свои расходы.
Со времени основания списка наиболее производительных компьютеров мире Top500 все классы вычислительных систем рассматриваются вместе. Уже тогда, на ранней стадии эволюции кластеры класса Беовульф продемонстрировали исключительный потенциал. Вполне вероятно, что к середине текущего десятилетия многочисленные формы кластеров будут доминировать в высокопроизводительных компьютерных архитектурах[3].
На выставке Supercomputing '96 демонстрировались кластеры, достигавшие производительности 1 Гфлопс. Годом позже на выставке Supercomputing '97 Калифорнийский университет показал кластер из 140 узлов производительностью 10.9 Гфлопс. Сейчас кластеры из готовых компонентов занимают 29 позиций списка Top500 по состоянию на ноябрь 2000г. 512-процессорный кластер Compaq AlphaServer SC ES40/EV67 занимает 31 место в списке и имеет производительность 507.6 Гфлопс, что составляет приблизительно 10% процентов от максимальной в списке (ASCI White).
Диапазон производительности кластеров простирается от DOE ASCI, который сейчас собирается фирмой Compaq и должен достичь быстродействия в 30 Тфлопс, до скромных кластеров, построенных на ПЭВМ.
В настоящее время происходит стремительное развитие технологий, используемых в кластерах. Развитие сетевых технологий (Gigabit, Myrinet и т.д.) позволяет создавать все более крупные эффективно работающие кластеры. Кроме традиционных вычислительных задач кластеры начинают использоваться и в таких областях, как серверы баз данных, интернет-серверы системы реального времени и т.д. В связи с этим развивается и математическое обеспечение, позволяющее использовать большие кластеры, в том числе обеспечивающие динамическое выделение ресурсов. При создании новых систем все чаще приходится переходить от набора корпусов (LOBOS) к созданию стоек.
1. Phil Merkey. Beowulf Introduction & Overview - http://www.beowulf.org.
2. Jacek Radajewski and Douglas Eadline - Beowulf HOWTO Jacek Radajewski and Douglas Eadline Version 1.2.0 5 April 1998
3. Thomas Sterling "Top Cluster Computing Systems" - Top Cluster Computing Systems a web site for the future of HPC , March 14 2001
4. Thomas L. Sterling, John Salmon, Donald J. Becker, Daniel F. Savarese – How to Build a Beowulf A guide to the Implementation and Application of PC Clusters– The MIT press, 1999.
5. http://clusters.top500.org/pollbooth.php
Савин Геннадий Иванович. Родился в 1948 году. Окончил Московский физико-технический институт в 1971 году. Доктор физико-математических наук, академик РАН. Профессор кафедры Исследования Операций МГУ. Крупный специалист в области информационного и системного анализа, высокопроизводительных вычислительных систем. Директор ГУ Межведомственный суперкомпьютерный центр. Заведующий кафедрой МФТИ.
Шабанов Борис Михайлович. Родился в 1954 году. Окончил Московский энергетический институт в 1977 году. Кандидат технических наук. Область научных интересов - высокопроизводительные вычислительные системы. Автор более 20 научных работ. Заместитель директора ГУ Межведомственный суперкомпьютерный центр.
Телегин Павел Николаевич. Родился 1960 году. Окончил факультет прикладной математики Московского института электронного машиностроения. В 1989 году защитил кандидатскую диссертацию. Область научных интересов - параллельное программирование. Автор более 10 научных работ. Заведующий лабораторией Межведомственного суперкомпьютерного центра.
Аладышев Олег Сергеевич. Родился в 1970 году. Окончил факультет вычислительной математики и кибернетики Московский государственный университет имени М.В. Ломоносова. В 1992 году. Область научных интересов - проектирование, мониторинг и администрирование вычислительных и телекоммуникационных систем. Заведующий лабораторией Межведомственного суперкомпьютерного центра.