Рисунок. Первый логотип проекта Beowulf. Герой скандинавской саги в окружении нескольких пингвинов, являющимися символами операционной системы Linux.

История Беовульф.

Летом 1994 года Томасом Стерлингом и Доном Бекером, работавшими в центре CEDSIS (Center of Excellence in Space Data and Information Sciences), был построен первый кластер из 16 процессоров Intel DX4, соединенных сетью Ethernet с дублированием каналов. Машина была названа Beowulf в честь героя скандинавской саги (см. рис.). Машина пользовалась успехом, и их идея создания системы из готовых стандартных компонентов для конкретных вычислительных нужд быстро распространилась в NASA, а также в академической и исследовательской среде. Усилия по разработке таких машин быстро вылились в то, что сейчас называется проект Beowulf. Сейчас такие машины обычно зазываются “Кластерные ЭВМ класса Беовульф” (Beowulf Class Cluster Computers).

Очевидно, что развитие кластерных ЭВМ класса Беовульф началось, когда “пришло время”. За предыдущие десять лет произошло множество событий, которые сделали возможным данный проект. Появление обыденного компьютерного рынка (автоматизация офисов, домашние вычисления, игры и развлечения) стало обеспечивать разработчика системы новым типом компонент за разумную цену. Индустрия готовых частей производит полностью собранные подсистемы (микропроцессоры, материнские платы, диски и сетевые интерфейсные карты). Конкуренция на массовом рынке снизила цены и увеличила надежность таких подсистем. Разработка бесплатного математического обеспечения (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). Он был создан людьми и для людей с опытом параллельного программирования. Многие из них потратили годы в битве с поставщиками массивно-параллельных систем и системными администраторами, за детальную информацию о производительности и в борьбе с недоработанными средствами программирования и новыми программными моделями. Это привело их к подходу сделай сам. Другая проблема, с которой они столкнулись, было то, что доступ к большой машине часто означал доступ к небольшой части ресурсов машины, разделенной между многими пользователями. Для этих пользователей создание кластера, который целиком находится в их распоряжении, означает более эффективную и высокопроизводительную вычислительную платформу. Этот подход вкратце выражается фразой: Зачем покупать то, что можно сделать самому? Изучение того, как построить и использовать кластер Беовульф, рассматривается как инвестиция, изучение специфики системы от поставщика рассматривается как всего лишь как зависимость от этого поставщика.

< Про TOP-500 и Beowulf>

 

These hard core parallel programmers are first and foremost interested in high performance computing applied to difficult problems. At Supercomputing '96 both NASA and DOE demonstrated clusters costing less than $50,000 that achieved greater than a gigaflop/s sustained performance. A year later, NASA researchers at Goddard Space Flight Center combined two clusters for a total of 199, P6 processors and ran a PVM version of a PPM (Piece-wise Parabolic Method) code at a sustain rate of 10.1 Gflop/s. In the same week (in fact, on the floor of Supercomputing '97) Caltech's 140 node cluster ran an N-body problem at a rate of 10.9 Gflop/s. This does not mean that Beowulf clusters are supercomputers, it just means one can build a Beowulf that is big enough to attract the interest of supercomputer users.

 

 

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

В таксономии параллельных ЭВМ кластеры Беовульф находятся между системами с массовым параллелизмом (nCube, CM5, HP V-class, HP SuperDome, IBM SP/2, Cray T3D, Cray T3E, SGI Origin и др.) и сетями рабочих станций. Кластеры Беовульф объединяют сильные стороны обеих архитектур. Системы с массовым параллелизмом обычно больше и имеют межпроцессорные коммуникации с меньшей латентностью, чем кластеры Беовульф. Программистам нужно по-прежнему заботиться о локализации кода, оптимальной загрузке процессоров, декомпозиции и накладных расходах на передачу данных, чтобы получить лучшую производительность. Даже на системах с общей памятью многие программисты используют модель передачи данных. Программа, которая не требует мелкоблочных вычислений частых обменов данными, может легко быть перенесена на кластер Беовульф и выполняться на нем эффективно. Программы для сетей рабочих станций обычно пытаются потреблять неиспользуемое время на уже установленных рабочих станциях. Программирование для таких сред требует алгоритмов, очень независимых от балансировки параллельных частей и высокой латентности обмена данных. Любая программа, выполняющаяся на сети рабочих станций, может выполняться на кластере по меньше мере не хуже.

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

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

Определение Беовульф.

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

Приведем определение, предложенное Язеком Радаевски и Дугласом Эдлайном:

Беовульф – это мультикомпьютерная архитектура, которая может использоваться для параллельных вычислений. Это система, обычно состоящая из одного серверного узла и одного или более клиентских узлов, соединенных при помощи Ethernet или некоторой другой сети. Это система, построенная из готовых промышленных компонент, например ПЭВМ, на которых может работать ОС Linux, стандартных адаптеров Ethernet и коммутаторов. Она не содержит специфических аппаратных компонентов и легко воспроизводима. Беовульф также использует программные продукты, такие как ОС Linux, среды программирования Parallel Virtual Machine (PVM) и Message Passing Interface (MPI). Серверный узел управляет всем кластером и является файл-сервером для клиентских узлов. Он также является консолью кластера и шлюзом во внешнюю сеть. Большие системы Беовульф могут иметь более одного серверного узла, а также возможно специализированные узлы, например, консоли или станции мониторинга. В большинстве случаев клиентские узлы в Беовульфе пассивны. Они конфигурируются и управляются серверными узлами и выполняют только то, что предписано серверным узлом. В бездисковой конфигурации клиентов, клиентские узлы даже не имеют IP-адресов или имен, пока их не назначит сервер. Одно из основных отличий Беовульфа от кластера рабочих станций состоит также в том, что Беовульф работает как одна машина. В большинстве случаев клиентские узлы не имеют клавиатур и мониторов, и могут быть доступны только через удаленное подключение. Узлы Беовульфа могут рассматриваться как элементы процессор+память, которые вставляются в кластер так же как процессор или модуль памяти вставляются в материнскую плату.

Беовульф – это не специфический пакет программ, новая топология сети или новейшая модификация ядра ОС. Беовульф – это технология кластеризации компьютеров, работающих под управлением ОС Linux в разновидность параллельного, виртуального суперкомпьютера. Хотя существует много программных пакетов, таких как модификации ядра, библиотеки PVM и MPI и конфигурационные утилиты, которые делают архитектуру Беовульф более быстрой, простой в конфигурировании и эффективной, можно построить машину класса Беовульф, используя только стандартный дистрибутив Linux, без какого либо дополнительного математического обеспечения. Если имеются два соединенные сетью компьютера под ОС Linux, которые разделяют по меньшей мере файловую систему /home при помощи NFS, и позволяют друг другу выполнять удаленный шелл (rsh), то можно говорить, что это простой кластер Беовульф из двух узлов.

Классификация Беовульф.

Системы Беовульф строятся из различных частей. Ради производительности могут применяться некоторые не совсем стандартные компоненты (т.е., производимые единственным производителем). Язеком Радаевски и Дугласом Эдлайном предложена следующий подход.

Беовульф класса I:

Этот класс машин строится целиком из стандартных деталей, которые продают многие продавцы компьютерных компонент.

Преимущества систем класса I:

Недостатки систем класса I:

Беовульф класса II:

Это машина, содержащая эксклюзивные или не широко распространенные детали.

Преимущества систем класса II:

Недостатки систем класса I:

Нельзя сказать, что один класс лучше другого. Все зависит от потребностей и бюджета.

Rambler's Top100 Rambler's Top100