Чтение онлайн

на главную

Жанры

Журнал «Компьютерра» №46 от 15 декабря 2005 года
Шрифт:

Как-то странно получается, согласитесь: шесть с половиной миллионов долларов за 64-процессорный сервер и вдесятеро меньше - за примерно аналогичный по объему памяти и дисковой подсистеме, но уже 480-процессорный суперкомпьютер, причем от того же самого производителя. Впрочем, странно это только на первый взгляд: общего у двух компьютеров совсем немного. SD64A - представитель «классического» направления симметричной многопроцессорности (SMP), хорошо знакомого нам по обычным серверам и многоядерным системам, позволяющий использовать «традиционное» параллельное ПО. Это кучка процессоров, много оперативной памяти и очень сложная система, сводящая их (и периферию сервера) в единое целое; причем даже весьма недешевые процессоры (по четыре тысячи долларов за каждый) и огромный объем оперативной памяти (по двести долларов за каждый гигабайт) - лишь малая часть стоимости этой «объединяющей» части сервера. Машина же SunTrust Bank Florida - представитель современного «кластерного» направления и по сути - просто набор соединенных в Ethernet-сеть обычных «недорогих» (по паре тысяч долларов за штуку) компьютеров. Серверная стойка, набор кабелей, система питания и охлаждения - вот и все, что

эти компьютеры объединяет.

Что такое кластер?

Стандартное определение таково: кластер - это набор вычислительных узлов (вполне самостоятельных компьютеров), связанных высокоскоростной сетью (интерконнектом) и объединенных в логическое целое специальным программным обеспечением. Фактически простейший кластер можно собрать из нескольких персоналок, находящихся в одной локальной сети, просто установив на них соответствующее ПО[Всех желающих сделать это самостоятельно отсылаем к статье Михаила Попова «Еда и кластеры на скорую руку» (offline.computerra.ru/2002/430/15844), которая до сих пор актуальна]. Однако подобные схемы - скорее редкость, нежели правило: обычно кластеры (даже недорогие) собираются из специально выделенных для этой цели компьютеров и связываются друг с другом отдельной локальной сетью.

В чем идея подобного объединения? Кластеры ассоциируются у нас с суперкомпьютерами, круглые сутки решающими на десятках, сотнях и тысячах вычислительных узлов какую-нибудь сверхбольшую задачу, но на практике существует и множество куда более «приземленных» кластерных применений. Часто встречаются кластеры, в которых одни узлы, дублируя другие, готовы в любой момент перехватить управление, или, например, одни узлы, проверяя получаемые с другого узла результаты, радикально повышают надежность системы. Еще одно популярное применение кластеров - решение задачи массового обслуживания, когда серверу приходится отвечать на большое количество независимых запросов, которые можно легко раскидать по разным вычислительным узлам[Обычно эту штуку называют серверной фермой, именно по такому принципу работает Google]. Однако рассказывать об этих двух, если угодно, «вырожденных» случаях кластерных систем практически нечего - из их краткого описания и так ясно, как они работают; поэтому разговор наш пойдет именно о суперкомпьютерах.

Итак, суперкомпьютер-кластер. Он состоит из трех основных компонентов: собственно «вычислялок» - компьютеров, образующих узлы кластера; интерконнекта, соединяющего эти узлы в сеть, и программного обеспечения, заставляющего всю конструкцию «почувствовать» себя единым компьютером. В роли вычислительных узлов может выступать что угодно - от старой никому не нужной персоналки до современного четырехпроцессорного сервера, причем их количество ничем не ограниченно (ну разве что площадью помещения да здравым смыслом). Чем быстрее и чем больше - тем лучше; и как эти узлы устроены, тоже неважно[Обычно для упрощения решения и непростой задачи балансировки нагрузки на разные узлы кластера все узлы в кластере делают одинаковыми, но даже это требование не абсолютно]. Гораздо интереснее обстоят дела с интерконнектом и программным обеспечением.

Как устроен кластер?

История развития кластерных систем неразрывно связана с развитием сетевых технологий. Дело в том, что, чем больше элементов в кластере и чем они быстрее, (и, соответственно, чем выше быстродействие всего кластера), тем более жесткие требования предъявляются к скорости интерконнекта. Можно собрать кластерную систему хоть из 10 тысяч узлов, но если вы не обеспечите достаточной скорости обмена данными, то производительность компьютера по-прежнему оставит желать лучшего. А поскольку кластеры в высокопроизводительных вычислениях - это практически всегда суперкомпьютеры[Программирование для кластеров - весьма трудоемкая задача, и если есть возможность обойтись обычным сервером SMP-архитектуры с эквивалентной производительностью, то так и предпочитают делать. Поэтому кластеры используются только там, где SMP обходится слишком дорого, а со всех практических точек зрения требующие такого количества ресурсов машины - это уже суперкомпьютеры], то и интерконнект для них просто обязан быть очень быстрым, иначе полностью раскрыть свои возможности кластер не сможет. В результате практически все известные сетевые технологии хотя бы раз использовались для создания кластеров[Я даже слышал о попытках использования в качестве интерконнекта стандартных портов USB], причем разработчики зачастую не ограничивались стандартом и изобретали «фирменные» кластерные решения, как, например, интерконнект, основанный на нескольких линиях Ethernet, включаемых между парой компьютеров в параллель. К счастью, с повсеместным распространением гигабитных сетевых карт, ситуация в этой области становится проще[Почти половину списка суперкомпьютеров Top 500 составляют кластеры, построенные на основе Gigabit Ethernet], - они довольно дешевы, и в большинстве случаев предоставляемых ими скоростей вполне достаточно.

Вообще, по пропускной способности интерконнект почти дошел до разумного предела: так, постепенно появляющиеся на рынке 10-гигабитные адаптеры Ethernet вплотную подобрались к скоростям внутренних шин компьютера, и если создать некий гипотетический 100-гигабитный Ethernet, то не найдется ни одного компьютера, способного пропустить через себя такой огромный поток данных. Но на практике десятигигабитная локальная сеть, несмотря на всю свою перспективность, встречается редко - технология Ethernet допускает использование только топологии «звезда», а в подобной системе центральный коммутатор, к которому подключаются все остальные элементы, обязательно будет узким местом. Кроме того, у Ethernet-сетей довольно большая латентность[Время между отправкой запроса одним узлом и получением этого запроса другим узлом], что тоже затрудняет их использование в «тесно связанных» задачах, где отдельные вычислительные узлы должны активно обмениваться информацией. Поэтому

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

Как развитие идей быстрого интерконнекта отметим, например, адаптеры сети InfiniBand, подключающиеся через специальный слот HTX к процессорной шине HyperTransport. Фактически адаптер напрямую подключается к процессору[Напомним, что в многопроцессорных системах на базе AMD Opteron межпроцессорное взаимодействие происходит именно по этой шине]! Лучшие образцы подобных решений обеспечивают столь высокую производительность, что построенные на их основе кластеры вплотную приближаются по характеристикам к классическим SMP-системам, а то и превосходят их. Так, в ближайшие несколько месяцев на рынке должен появиться интереснейший чип под названием Chorus, который по четырем шинам HyperTransport подключается к четырем или двум процессорам AMD Opteron, расположенным на одной с ним материнской плате, и с помощью трех линков InfiniBand может подключаться еще к трем другим «Хорусам», контролирующим другие четверки (или пары) процессоров. Один Chorus - это одна материнская плата и один сравнительно независимый узел с несколькими процессорами, подключаемый стандартными кабелями InfiniBand к остальным узлам. Внешне вроде бы получается кластер, но - только внешне: оперативная память у всех материнских плат общая. Всего в текущем варианте может объединяться до восьми «Хорусов» (и соответственно до 32 процессоров), причем все процессоры будут работать уже не как кластер, а как единая SUMA-система, сохраняя, однако, главное достоинство кластеров - невысокую стоимость и возможность наращивания мощности. Такой вот получается «суперкластеринг», стирающий границы между кластерами и SMP.

Впрочем, все эти новомодные решения совсем не дешевы, - а ведь начинали мы с невысокой себестоимости кластера. Поэтому «Хорусы» да «Инфинибенды», стоящие солидных денег (несколько тысяч долларов на каждый узел кластера, что хоть и гораздо меньше, чем у аналогичных SMP-систем, но все равно дорого), встречаются нечасто. В секторе «академических» суперкомпьютеров, принадлежащих университетам, обычно используются самые дешевые решения, так называемые Beowulf-кластеры, состоящие из набора персоналок, соединенных гигабитной или даже стомегабитной Ethеrnet-сетью и работающих под управлением бесплатных операционных систем типа Linux. Несмотря на то что собираются такие системы буквально «на коленке», иногда из них все равно вырастают сенсации: к примеру, «биг-мак» - собранный из 1100 обычных «макинтошей» самодельный кластер, обошедшийся организаторам всего в 5,2 млн. долларов и умудрившийся занять в 2003 году третье место в рейтинге Top 500.

GRID-сети

Можно ли «продолжить» кластеры в сторону меньшей связанности точно так же, как, «продолжив» их в другом направлении, мы пришли к чипу Chorus и «почти SMP»? Можно! При этом мы отказываемся от построения специальной кластерной сети, а пытаемся использовать уже имеющиеся ресурсы - локальные сети и образующие их компьютеры. Общее название подобного рода решений - GRID-технологии, или технологии распределенных вычислений (вы наверняка с ними хорошо знакомы по таким проектам, как Distributed.Net или SETI@Home; машины добровольцев, участвующих в этих проектах, загружены разнообразными расчетами, ведущимися в то время, когда ПК хозяину не нужен). Ограничиваться достигнутым создатели GRID-систем не собираются и ставят перед собой амбициозную цель - сделать вычислительные мощности таким же доступным ресурсом, как электричество или газ в квартире. В идеале все компьютеры, подключенные к Интернету в рамках GRID, должны быть объединены в некое подобие кластера, и в то время, когда ваша машина простаивает, ее ресурсы будут доступны другим пользователям, а когда у вас возникает необходимость в больших мощностях, вам помогают «чужие» свободные компьютеры, которых в Сети предостаточно (кто-то отошел попить кофе, кто-то занимается серфингом или другими не загружающими процессор делами). Приоритетный доступ к ресурсам GRID будут иметь ученые, которые получат в распоряжение в буквальном смысле всемирный суперкомпьютер; но и обычные пользователи тоже внакладе не останутся.

Впрочем, если на словах все выглядит так замечательно, то почему это светлое будущее до сих пор не настало? Все дело в том, что при создании GRID возникают нетривиальные проблемы, решать которые пока никто толком не научился. В отличие от простого кластера при создании подобной системы приходится учитывать такие факторы, как неоднородность вычислительных узлов, низкая пропускная способность и нестабильность каналов, куда большее количество одновременно выполняемых задач, непредсказуемое поведение элементов системы, ну и, конечно, недоброжелательность некоторых пользователей. Судите сами: неоднородность нашей сети (причем очень сильная) возникает оттого, что к Интернету подключены самые разные компьютеры; у них разные возможности, разные линии связи и разные хозяева (режим работы у каждого свой). К примеру, где-то в школе есть гигабитная сеть из трех десятков почти всегда доступных, но не очень быстрых компьютеров, выключающихся на ночь в строго определенное время; а где-то стоит одинокий компьютер с завидной производительностью, непредсказуемо подключаемый к Сети по слабенькому дайлапу: так вот, в первом случае будут очень хорошо выполняться одни задачи, а во втором - совершенно другие. И для обеспечения высокой производительности системы в целом все это надо как-то анализировать и прогнозировать, чтобы оптимальным образом спланировать выполнение различных операций.

Поделиться:
Популярные книги

Искушение генерала драконов

Лунёва Мария
2. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Искушение генерала драконов

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Измена. Свадьба дракона

Белова Екатерина
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Измена. Свадьба дракона

Расческа для лысого

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
8.52
рейтинг книги
Расческа для лысого

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Гром над Империей. Часть 2

Машуков Тимур
6. Гром над миром
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Гром над Империей. Часть 2

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Черный дембель. Часть 1

Федин Андрей Анатольевич
1. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 1

Школа Семи Камней

Жгулёв Пётр Николаевич
10. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Школа Семи Камней

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Последний попаданец 5

Зубов Константин
5. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 5

Под маской моего мужа

Рам Янка
Любовные романы:
современные любовные романы
5.67
рейтинг книги
Под маской моего мужа