Кластер Беовульфа — это компьютерный кластер , состоящий из обычно идентичных компьютеров обычного уровня, объединенных в небольшую локальную сеть с установленными библиотеками и программами, которые позволяют распределять обработку между ними. В результате получается высокопроизводительный кластер параллельных вычислений на базе недорогого оборудования персонального компьютера .
Первоначально «Беовульф» имел в виду конкретный компьютер, созданный в 1994 году Томасом Стерлингом и Дональдом Беккером в НАСА . [1] Они назвали его в честь древнеанглийской эпической поэмы «Беовульф» . [2]
Ни одна конкретная часть программного обеспечения не определяет кластер как Беовульф. Обычно используется только бесплатное программное обеспечение с открытым исходным кодом , как для экономии средств, так и для обеспечения возможности настройки. Большинство кластеров Beowulf работают под управлением Unix-подобной операционной системы, такой как BSD , Linux или Solaris . Обычно используемые библиотеки параллельной обработки включают интерфейс передачи сообщений (MPI) и параллельную виртуальную машину (PVM). Оба они позволяют программисту разделить задачу между группой сетевых компьютеров и собрать результаты обработки. Примеры программного обеспечения MPI включают Open MPI или MPICH . Доступны дополнительные реализации MPI.
Системы «Беовульф» работают по всему миру, в основном для поддержки научных вычислений . С 2017 года каждая система из списка Top500 самых быстрых суперкомпьютеров мира использует программные методы Beowulf и операционную систему Linux . Однако на этом уровне большинство из них ни в коем случае не являются просто сборками обычного оборудования; Для узлов (часто блейд-серверов ), сетей и систем охлаждения часто требуется работа по индивидуальному проектированию.
Описание кластера Беовульф из оригинального руководства, опубликованного Яцеком Радаевским и Дугласом Идлайном в рамках Проекта документации Linux в 1998 году: [3]
Беовульф — это многокомпьютерная архитектура , которую можно использовать для параллельных вычислений . Это система, которая обычно состоит из одного серверного узла и одного или нескольких клиентских узлов, подключенных через Ethernet или другую сеть. Это система, построенная с использованием обычных аппаратных компонентов, как и любой ПК, способный работать под управлением Unix-подобной операционной системы, со стандартными адаптерами Ethernet и коммутаторами. Он не содержит каких-либо специальных аппаратных компонентов и легко воспроизводим. Беовульф также использует стандартное программное обеспечение, такое как операционная система FreeBSD, Linux или Solaris, параллельная виртуальная машина ( PVM ) и интерфейс передачи сообщений ( MPI ). Серверный узел управляет всем кластером и передает файлы клиентским узлам. Это также консоль кластера и шлюз во внешний мир. Большие машины Beowulf могут иметь более одного серверного узла и, возможно, другие узлы, предназначенные для конкретных задач, например консоли или станции мониторинга. В большинстве случаев клиентские узлы в системе «Беовульф» тупы, и чем тупее, тем лучше. Узлы настраиваются и управляются серверным узлом и делают только то, что им говорят. В бездисковой конфигурации клиента клиентский узел даже не знает своего IP-адреса или имени, пока ему не сообщит сервер.
Одно из основных различий между «Беовульфом» и кластером рабочих станций (COW) заключается в том, что «Беовульф» ведет себя скорее как одна машина, а не как множество рабочих станций. В большинстве случаев клиентские узлы не имеют клавиатур или мониторов, и доступ к ним осуществляется только через удаленный вход в систему или, возможно, через последовательный терминал. Узлы Beowulf можно рассматривать как пакет ЦП + память, который можно подключить к кластеру точно так же, как ЦП или модуль памяти можно подключить к материнской плате.
«Беовульф» — это не какой-то специальный программный пакет, новая топология сети или новейший хак ядра. Беовульф — это технология кластеризации компьютеров в параллельный виртуальный суперкомпьютер. Хотя существует множество пакетов программного обеспечения, таких как модификации ядра, библиотеки PVM и MPI, а также инструменты настройки, которые делают архитектуру Beowulf более быстрой, простой в настройке и гораздо более удобной в использовании, можно построить машину класса Beowulf, используя стандартный дистрибутив Linux без каких-либо дополнительных программное обеспечение. Если у вас есть два сетевых компьютера, которые совместно используют как минимум
/home
файловую систему через NFS и доверяют друг другу выполнение удаленных оболочек ( rsh ), то можно утверждать, что у вас есть простая двухузловая машина Beowulf.
По состоянию на 2014 год [обновлять]ряд дистрибутивов Linux и как минимум один BSD предназначены для создания кластеров Beowulf. К ним относятся:
Следующие пункты больше не поддерживаются:
Кластер можно настроить с помощью загрузочных компакт-дисков Knoppix в сочетании с OpenMosix . Компьютеры будут автоматически соединяться друг с другом без необходимости сложных конфигураций, образуя кластер Beowulf, используя все процессоры и оперативную память кластера. Кластер Beowulf масштабируется практически на неограниченное количество компьютеров, ограниченное только нагрузкой на сеть.
Предоставление операционных систем и другого программного обеспечения для кластера Беовульф можно автоматизировать с помощью программного обеспечения, такого как ресурсы приложения кластера с открытым исходным кодом . OSCAR устанавливается поверх стандартной установки поддерживаемого дистрибутива Linux на головном узле кластера.