Параллельные вычисления: кластеры. Кластерные вычислительные системы и их архитектура. Кластер распределения нагрузки

Вершина современной инженерной мысли - сервер Hewlett-Packard Integrity Model SD64A. Огромная SMP-система, объединяющая в себе 64 процессора Intel Itanium 2 с частотой 1,6 ГГц и 256 Гбайт оперативной памяти, колоссальная производительность, внушительная цена - 6,5 млн. долларов…

Вершина современной инженерной мысли - сервер Hewlett-Packard Integrity Model SD64A. Огромная SMP-система, объединяющая в себе 64 процессора Intel Itanium 2 с частотой 1,6 ГГц и 256 Гбайт оперативной памяти, колоссальная производительность, внушительная цена - 6,5 млн. долларов…

Нижняя строчка свежего рейтинга пятисот самых быстрых компьютеров мира: принадлежащий группе компаний SunTrust Banks Florida кластер на основе блейд-серверов HP ProLiant BL-25p. 480 процессоров Intel Xeon 3,2 ГГц; 240 Гбайт оперативной памяти. Цена - меньше миллиона долларов.

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

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

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

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

На самом деле все не так грустно, и многое в GRID-направлении уже сделано. Запущены и функционируют десятки проектов, использующих распределенные вычисления для научных и околонаучных целей; запущены и GRID-сети для "внутриуниверситетского" научного использования - в частности, CrossGrid, DataGrid и EUROGRID.

Программное обеспечение для кластеров

А вот здесь все очевидно и просто: фактически на протяжении последних пяти лет для кластерных вычислений существует один-единственный стандарт - MPI (Message Passing Interface). Программы, написанные с использованием MPI, абсолютно переносимы - их можно запускать и на SMP-машине, и на NUMA, и на любой разновидности кластера, и на GRID-сети, причем из любой операционной системы. Конкретных реализаций MPI довольно много (к примеру, каждый поставщик "фирменного" быстрого интерконнекта может предлагать свой вариант MPI-библиотеки для его решения), однако благодаря совместимости выбирать из них можно любой, какой вам приглянется (например, быстродействием или удобством настройки). Очень часто используется такой OpenSource-проект, как MPICH, обеспечивающий работу на более чем двух десятках различных платформ, включая самые популярные - SMP (межпроцессное взаимодействие через разделяемую память) и кластеры с интерконнектом Ethernet (межпроцессное взаимодействие поверх протокола TCP/IP), - если доведется когда-нибудь настраивать кластер, то начать советую именно с него.

На "классических" SMP-системах и некоторых NUMA’х реализация параллельных вычислений с использованием MPI заметно уступает по производительности более "аппаратно ориентированным" многопоточным приложениям, поэтому наряду с "чистыми" MPI-решениями встречаются "гибриды", в которых на кластере "в целом" программа работает с использованием MPI, но на каждом конкретном узле сети (а каждый узел кластера - это зачастую SMP-система) работает MPI-процесс, распараллеленный вручную на несколько потоков. Как правило, это гораздо эффективнее, но и гораздо труднее в реализации, а потому на практике встречается нечасто.

Как уже говорилось, можно выбрать практически любую операционную систему. Традиционно для создания кластеров используется Linux (более 70% систем Top 500) или другие разновидности Unix (оставшиеся 30%), однако последнее время к этому престижному рынку HPC (High Perfomance Computing) присматривается и Microsoft, выпустившая бета-версию Windows Compute Claster Server 2003[Бесплатно скачать эту бету можно ], в состав которой включена микрософтовская версия библиотеки MPI - MSMPI. Так что организация "кластера своими руками" вскоре может стать уделом не только юниксоидов, но и их менее знающих собратьев-администраторов, да и вообще - значительно упроститься.

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

Вот такие они - доступные всем суперкомпьютеры сегодняшнего дня. И не только доступные, но и более чем востребованные повсюду, где требуются высокопроизводительные вычисления за умеренные деньги. Даже простой пользователь, увлекающийся рендерингом, может собрать дома из своих машин небольшой кластер (рендеринг параллелится практически идеально, так что никаких ухищрений здесь не понадобится) и резко увеличить производительность труда[К примеру, пакет Maya позволяет организовать кластерный рендеринг даже без привлечения каких-либо сторонних пакетов и библиотек. Достаточно установить его на несколько компьютеров локальной сети и настроить сервер и несколько клиентов].

(К слову, говоря, при этом есть возможность собрать недорогой и эффективный кластер из xbox 360 или PS3, процессоры там примерно как Power, и на миллион можно купить не одну приставку.)

Исходя из этого отметим интересные по цене варианты построения высокопроизводительной системы. Разумеется, она должна быть многопроцессорной. У Intel для таких задач используются процессоры Xeon, у AMD – Opteron.

Если много денег


Отдельно отметим крайне дорогую, но производительную линейку процессоров на сокете Intel Xeon LGA1567.
Топовый процессор этой серии – E7-8870 с десятью ядрами 2,4 ГГц. Его цена $4616. Для таких CPU фирмы HP и Supermicro выпускают! восьмипроцессорные! серверные шасси. Восемь 10-ядерных процессоров Xeon E7-8870 2.4 ГГц с поддержкой HyperThreading поддерживают 8*10*2=160 потоков, что в диспетчере задач Windows отображается как сто шестьдесят графиков загрузки процессоров, матрицей 10x16.

Для того, чтобы восемь процессоров уместились в корпусе, их размещают не сразу на материнской плате, а на отдельных платах, которые втыкаются в материнскую плату. На фотографии показаны установленные в материнскую плату четыре платы с процессорами (по два на каждой). Это решение Supermicro. В решении HP на каждый процессор приходится своя плата. Стоимость решения HP составляет два-три миллиона, в зависимости от наполнения процессорами, памятью и прочим. Шасси от Supermicro стоит $10 000, что привлекательнее. Кроме того в Supermicro можно поставить четыре сопроцессорных платы расширения в порты PCI-Express x16 (кстати, еще останется место для Infiniband-адаптера чтобы собирать кластер из таких), а в HP только две. Таким образом, для создания суперкомпьютера восьмипроцессорная платформа от Supermicro привлекательнее. На следующем фото с выставки представлен суперкомпьютер в сборе с четырьмя GPU платами.


Однако это очень дорого.
Что подешевле
Зато есть перспектива сборки суперкомпьютера на более доступных процессорах AMD Opteron G34, Intel Xeon LGA2011 и LGA 1366.

Чтобы выбрать конкретную модель, я составил таблицу, в которой сосчитал для каждого процессора показатель цена/(число ядер*частота). Я отбросил из расчета процессоры частотой ниже 2 ГГц, и для Intel - с шиной ниже 6,4GT/s.

Модель
Кол-во ядер
Частота
Цена, $
Цена/ядро, $
Цена/Ядро/ГГц
AMD





6386 SE
16
2,8
1392
87
31
6380
16
2,5
1088
68
27
6378
16
2,4
867
54
23
6376
16
2,3
703
44
19
6348
12
2,8
575
48
17
6344
12
2,6
415
35
13
6328
8
3,2
575
72
22
6320
8
2,8
293
37
13
INTEL





E5-2690
8
2,9
2057
257
89
E5-2680
8
2,7
1723
215
80
E5-2670
8
2,6
1552
194
75
E5-2665
8
2,4
1440
180
75
E5-2660
8
2,2
1329
166
76
E5-2650
8
2
1107
138
69
E5-2687W
8
3,1
1885
236
76
E5-4650L
8
2,6
3616
452
174
E5-4650
8
2,7
3616
452
167
E5-4640
8
2,4
2725
341
142
E5-4617
6
2,9
1611
269
93
E5-4610
6
2,4
1219
203
85
E5-2640
6
2,5
885
148
59
E5-2630
6
2,3
612
102
44
E5-2667
6
2,9
1552
259
89
X5690
6
3,46
1663
277
80
X5680
6
3,33
1663
277
83
X5675
6
3,06
1440
240
78
X5670
6
2,93
1440
240
82
X5660
6
2,8
1219
203
73
X5650
6
2,66
996
166
62
E5-4607
6
2,2
885
148
67
X5687
4
3,6
1663
416
115
X5677
4
3,46
1663
416
120
X5672
4
3,2
1440
360
113
X5667
4
3,06
1440
360
118
E5-2643
4
3,3
885
221
67

Жирным курсивом выделена модель с минимальным показателем соотношения, подчеркнутым – самый мощный AMD и на мой взгляд наиболее близкий по производительности Xeon.

Таким, образом, мой выбор процессоров для суперкомпьютера – Opteron 6386 SE, Opteron 6344, Xeon E5-2687W и Xeon E5-2630.

Материнские платы

PICMG
На обычные материнские платы невозможно поставить более четырех двухслотовых плат расширения. Есть и другая архитектура – использование кросс-плат, таких как BPG8032 PCI Express Backplane.


В такую плату ставятся платы расширения PCI Express и одна процессорная плата, чем-то похожая на те, которые установлены в восьмипроцессорных серверах на базе Supermicro, о которых речь шла выше. Но только эти процессорные платы подчиняются отраслевым стандартам PICMG. Стандарты развиваются медленно и такие платы зачастую не поддерживают самые современные процессоры. Максимум такие процессорные платы сейчас выпускают на два Xeon E5-2448L - Trenton BXT7059 SBC.

Стоить такая система будет без GPU не меньше $5000.

Готовые платформы TYAN
За ту же примерно сумму можно приобрести готовую платформу для сборки суперкомпьютеров TYAN FT72B7015 . В такой можно установить до восьми GPU и два Xeon LGA1366.
«Обычные» серверные материнские платы
Для LGA2011
Supermicro X9QR7-TF - на эту материнскую плату можно установить 4 Платы расширения и 4 процессора.

Supermicro X9DRG-QF - эта плата специально разработана для сборки высокопроизводительных систем.

Для Opteron
Supermicro H8QGL-6F - эта плата позволяет установить четыре процессора и три платы расширения

Усиление платформы платами расширения

Этот рынок почти полностью захвачен NVidia, которые выпускают помимо геймерских видеокарт еще и вычислительные карты. Меньшую долю рынка имеет AMD, и относительно недавно на этот рынок пришла корпорация Intel.

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

FP32, Tflops FP64, Tflops Цена Память, Гб
Nvidia Tesla K20X 3.95 1.31 5.5 6
AMD FirePro S10000 5.91 1.48 3.6 6
Intel Xeon Phi 5110P 1 2.7 8
Nvidia GTX Titan 4.5 1.3 1.1 6
Nvidia GTX 680 3 0.13 0.5 2
AMD HD 7970 GHz Edition 4 1 0.5 3
AMD HD 7990 Devil 13 2x3,7 2х0.92 1.6 2x3

Топовое решение от Nvidia называется Tesla K20X на архитектуре Kepler. Именно такие карты стоят в самом мощном в мире суперкомпьютере Titan. Однако недавно Nvidia выпустила видеокарту Geforce Titan. Старые модели были с урезанной производительностью FP64 до 1/24 от FP32 (GTX680). Но в Титане производитель обещает довольно высокую производительность в расчетах с двойной точностью. Решения от AMD тоже неплохи, но они построены на другой архитектуре и это может создать трудности для запуска вычислений, оптимизированных под CUDA (технология Nvidia).

Решение от Intel - Xeon Phi 5110P интересно тем, что все ядра в сопроцессоре выполнены на архитектуре x86 и не требуется особой оптимизации кода для запуска расчетов. Но мой фаворит среди сопроцессоров – относительно недорогая AMD HD 7970 GHz Edition. Теоретически эта видеокарта покажет максимальную производительность в расчете на стоимость.

Можно соединить в кластер

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

Использовать в качестве сетевого интерфейса для связи компьютеров обычный гигабитный Ethernet слишком медленно. Для этих целей чаще всего используют Infiniband. Хост адаптер Infiniband относительно сервера стоит недорого. Например, на международном аукционе Ebay такие адаптеры продают по цене от $40. Например, адаптер X4 DDR (20Gb/s) обойдется с доставкой до России примерно в $100.

При этом коммутационное оборудование для Infiniband стоит довольно дорого. Да и как уже было сказано выше, классическая звезда в качестве топологии вычислительной сети – не лучший выбор.

Однако хосты InfiniBand можно подключать друг к другу напрямую, без свича. Тогда довольно интересным становится, например, такой вариант: кластер из двух компьютеров, соединенных по infiniband. Такой суперкомпьютер вполне можно собрать дома.

Сколько нужно видеокарт

В самом мощном суперкомпьютере современности Cray Titan отношение процессоров к «видеокартам» 1:1, то есть в нем 18688 16-ядерных процессоров и 18688 Tesla K20X.

В Тяньхэ-1А – китайском суперкомпьютере на ксеонах отношение следующее. Два шестиядерных процессора к одной «видюшке» Nvidia M2050 (послабее, чем K20X).

Такое отношение мы и примем для наших сборок за оптимальное (ибо дешевле). То есть 12-16 ядер процессоров на один GPU. На таблице ниже жирным обозначены практически возможные варианты, подчеркиванием – наиболее удачные с моей точки зрения.

GPU Cores 6-core CPU 8-core CPU 12-core CPU 16-core CPU
2 24 32 4
5
3
4
2
3
2
2
3 36 48 6
8
5
6
3
4
2
3
4 48 64 8
11
6
8
4
5
3
4

Если система с уже установленным отношением процессоров/видеокарт сможет принять «на борт» еще дополнительно вычислительных устройств, то мы их добавим, чтобы увеличить мощность сборки.

Итак, сколько стоит

Представленные ниже варианты – шасси суперкомпьютера без оперативной памяти, жестких дисков и ПО. Во всех моделях используется видеоадаптер AMD HD 7970 GHz Edition. Его можно заменить на другой, по требованию задачи (например, на xeon phi). Там, где система позволяет, одна из AMD HD 7970 GHz Edition заменена на трехслотовую AMD HD 7990 Devil 13.
Вариант 1 на материнской плате Supermicro H8QGL-6F


Материнская плата Supermicro H8QGL-6F 1 1200 1200
Процессор AMD Opteron 6344 4 500 2000
Кулер Процессора Thermaltake CLS0017 4 40 160
Корпус 1400Вт SC748TQ-R1400B 1 1000 1000
Графический ускоритель AMD HD 7970 GHz Edition 3 500 1500
5860

Теоретически, производительность составит около 12 Tflops.
Вариант 2 на материнской плате TYAN S8232, кластерный


Эта плата не поддерживает Opteron 63xx, поэтому используется 62xx. В этом варианте два компьютера объединены в кластер по Infiniband x4 DDR двумя кабелями. Теоретически скорость соединения в этом случае упрется в скорость PCIe x8 то есть 32Гб/с. Блоков питания используется два. Как их согласовать между собой, можно найти в интернете.
Количество Цена Сумма
Материнская плата TYAN S8232 1 790 790
Процессор AMD Opteron 6282SE 2 1000 2000
Кулер Процессора Noctua NH-U12DO A3 2 60 120
Корпус Antec Twelve Hundred Black 1 200 200
Блок питания FSP AURUM PRO 1200W 2 200 400
Графический ускоритель AMD HD 7970 GHz Edition 2 500 1000
Графический ускоритель AX7990 6GBD5-A2DHJ 1 1000 1000
Infiniband адаптер X4 DDR Infiniband 1 140 140
Infiniband кабель X4 DDR Infiniband 1 30 30
5680 (за один блок)

Для кластера таких конфигураций нужно две и стоимость их составит $11360 . Его энергопотребление при полной нагрузке будет около 3000Вт. Теоретически, производительность составит до 31Tflops. Blue Gene /L и семейства SGI Altix.

В качестве базового программного обеспечения для организации вычислений на кластерных системах рассматривается Windows Compute Cluster Server ( CCS ) 2003. Дается его общая характеристика и состав сервисов, работающих на узлах кластеров.

В заключение данного раздела, приводятся правила работы с консолью запуска и управления заданиями CCS . Описываются подробности работы планировщика CCS при исполнении последовательностей заданий на кластере.

1.1. Архитектура высокопроизводительных процессоров и кластерных систем

В истории развития архитектуры компьютерных процессоров можно выделить два крупных этапа:

  • 1-й этап - увеличение тактовой частоты работы процессоров (до 2000 г.),
  • 2-й этап - появление многоядерных процессоров (после 2000) г.

Таким образом, подход на основе SMP ( Symmetrical MultiProcessing ), который развивался при построении высокопроизводительных серверов, в которых несколько процессоров разделяют ресурс системы, и, в первую очередь , оперативную память (см. Рис 1.1), сместился "вниз" на уровень ядер внутри процессора.


Рис. 1.1.

На пути к многоядерным процессорам, первой появилась технология Hyper-Threading , впервые примененная в 2002 г. в процессорах Intel Pentium 4:


Рис. 1.2.

В этой технологии два виртуальных процессора разделяют между собой все ресурсы одного физического процессора, а именно, кэши, конвейер исполнения и отдельные исполнительные устройства. При этом, если один виртуальный процессор занял общий ресурс , то второй будет ожидать его освобождения. Тем самым, процессор с Hyper-Threading можно сравнить с многозадачной операционной системой, обеспечивающей каждому работающему в ней процессу свой виртуальный компьютер с полным набором средств и занимающейся планированием порядка и времени работы этих процессов на физическом оборудовании. Только в случае с Hyper-Threading , все это происходит на значительно более низком аппаратном уровне. Тем не менее, два потока команд позволяют более эффективно загрузить исполнительные устройства процессора. Реальный прирост производительности процессора от применения технологии Hyper-Threading оценивается от 10 до 20 процентов.

Полноценный двухъядерный процессор (см. Рис 1.3), на отдельных задачах демонстрирует прирост производительности от 80 до 100 процентов.


Рис. 1.3.

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

Более того, каждое ядро может (как, например, в процессоре Intel Pentium Extreme Edition 840) поддерживать технологию Hyper-Threading , а потому такого рода двухъядерный процессор может выполнять четыре программных потока одновременно.

В начале 2007 г., корпорация Intel представила 80-ядерный однокристальный процессор , получивший название Teraflops Research Chip (http://www.intel.com/research/platform/terascale/teraflops.htm). Этот процессор может достигать производительности 1,01 терафлопс при минимальной тактовой частоте ядра 3,16 ГГц и напряжении 0,95 В. При этом общее энергопотребление чипа составляет всего 62 Вт.

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

Кластерные вычислительные системы и их архитектура

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

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

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

Программное обеспечение кластеров состоит из двух компонент:

  • средств разработки/программирования и
  • средств управления ресурсами.

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

К программному обеспечению управления ресурсами относятся средства инсталляции, администрирования и планирования потоков работ.

Хотя для параллельной обработки существует очень много моделей программирования, но, на настоящий момент, доминирующим подходом является модель на основе "передачи сообщений" ( message passing ), реализованная в виде стандарта MPI ( Message Passing Interface). MPI - это библиотека функций, с помощью которых в программах на языках C или Фортран можно передавать сообщения между параллельными процессами, а также управлять этими процессами.

Альтернативами такому подходу являются языки на основе так называемого "глобального распределенного адресного пространства" (GPAS - global partitioned address space), типичными представителями которых являются языки HPF (High Performance Fortran) и UPC (Unified Parallel C).

Развитие кластерных систем (КС) в России

Кластер - это модульная многопроцессорная система, созданная на базе стандартных вычислительных узлов, соединенных высокоскоростной коммуникационной средой. Сейчас слова «кластер» и «суперкомпьютер» в значительной степени синонимы, но прежде чем об этом стало можно с уверенностью говорить, аппаратные средства прошли длительный цикл эволюции. В течение первых 30 лет с момента появления компьютеров, вплоть до середины 1980-х гг., под «суперкомпьютерными» технологиями понимали исключительно производство специализированных особо мощных процессоров. Однако появление однокристального микропроцессора практически стерло разницу между «массовыми» и «особо мощными» процессорами, и с этого момента единственным способом создания суперкомпьютера стал путь объединения процессоров для параллельного решения одной задачи. Алексей Лацис, один из создателей российского суперкомпьютера МВС-1000М, в своей книге «Как построить и использовать суперкомпьютер» называет это «первой суперкомпьютерной революцией».

Примерно до середины 1990-х гг. основное направление развития суперкомпьютерных технологий было связано с построением специализированных многопроцессорных систем из массовых микросхем. Один из сформировавшихся подходов - SMP (Symmetric Multi Processing), подразумевал объединение многих процессоров с использованием общей памяти, что сильно облегчало программирование, но предъявляло высокие требования к самой памяти. Сохранить быстродействие таких систем при увеличении количества узлов до десятков было практически невозможно. Кроме того, этот подход оказался самым дорогим в аппаратной реализации. На порядок более дешевым и практически бесконечно масштабируемым оказался способ МРР (Massively Parallel Processing), при котором независимые специализированные вычислительные модули объединялись специализированными каналами связи, причем и те и другие создавались под конкретный суперкомпьютер и ни в каких других целях не применялись.

Идея создания так называемого кластера рабочих станций фактически явилась развитием метода МРР, ведь логически МРР-система не сильно отличалась от обычной локальной сети. Локальная сеть стандартных персональных компьютеров, при соответствующем ПО использовавшаяся как многопроцессорный суперкомпьютер, и стала прародительницей современного кластера. Эта идея получила более совершенное воплощение в середине 1990-х гг., когда благодаря повсеместному оснащению ПК высокоскоростной шиной PCI и появлению дешевой, но быстрой сети. Fast Ethernet кластеры стали догонять специализированные МРР-системы по коммуникационным возможностям. Это означало, что полноценную МРР-систему можно было создать из стандартных серийных компьютеров при помощи серийных коммуникационных технологий, причем такая система обходилась дешевле в среднем на два порядка.

Вот самые знаменитые суперкомпьютеры с кластерной архитектурой «первого поколения»: Beowulf (1994, NASA Goddard Space Flight Center) - 16-процессор-ный кластер на процессорах Intel 486DX4/100 МГц; Avalon (1998, Лос-Аламосская национальная лаборатория) - Linux-кластер на базе процессоров Alpha 21164А/533 МГц. Первоначально Avalon состоял из 68 процессоров, затем их число увеличилось до 140; его производительность на тесте LINPACK 48,6 GFlops* позволила ему занять 113-е место в 12-й редакции рейтинга самых мощных компьютеров мира Тор500 рядом со 152-процессорной SMP-системой IBM RS/6000 SP. Первой отечественной системой, вошедшей в ТорбОО, стал кластер МВС-1000М, изготовленный НИИ «КВАНТ» и Институтом прикладной математики Российской академии наук. Он состоял из 384 узлов на базе процессоров Alpha 21164 компании DEC-Compaq.

* Flops (floating point operations per second) - количество операций с плавающей точкой в секунду, единица измерения производительности суперкомпьютеров. GFlops (гигафлопс) - миллиард операций с плавающей точкой в секунду; TFlops (терафлопс) - триллион операций с плавающей точкой в секунду. Реальная производительность самого мощного на сегодня суперкомпьютера превышает 136 TFlops; всего год назад этот показатель составлял 35 TFlops.

Различают пиковую и реальную производительность суперкомпьютеров. Пиковая производительность многопроцессорной системы (кластера, SMP-системы и т. д.) - теоретическое значение, недостижимое на практике. Оно получается умножением пиковой производительности процессора на число процессоров в системе. Пиковая производительность ЦП в общем случае получается путем умножения его тактовой частоты на максимальное число операций, выполняемых за один такт. Реальная производительность кластера - это производительность, полученная при решении реальной задачи (академической или промышленной). Например, системы в рейтинге Тор500 ранжируются по результатам теста LINPACK - реальной академической задачи на решение системы линейных уравнений.

Новый мощный толчок развитию кластерных технологий, помимо появления более совершенных коммуникационных сетей, дал быстрый рост производительности вновь выпускаемых массовых процессоров, что сделало высокопроизводительные решения доступными как никогда. Например, «СКИФ К-500», второй отечественный кластер, вошедший в ТорбОО, построен на базе 128 процессоров Intel Xeon и системной сети SCI. Построенный осенью 2003 г. для российско-белорусской государственной суперкомпьютерной программы «СКИФ», этот кластер занял в рейтинге 407-е место с реальной производительностью в 423,6 GFlops. Второй «топовый» кластер государственной программы, «СКИФ К-1000» на базе 576 процессоров AMD Opteron и системной сети InfiniBand, появился в октябре 2004 г. и вошел в первую сотню Тор500 с реальной производительностью 2,032 TFlops. Оба кластера «СКИФ», установленных в Белоруссии, построены компанией «Т-Платформы» с участием ИПС РАН и белорусских партнеров и используют российские суперкомпьютерные технологии. Самый мощный на данный момент кластер на территории России - МВС 15000БМ с реальной производительностью более 5,3 Tflops, он занимает 56-е место в Тор500 и установлен в Межведомственном суперкомпьютерном центре (МСЦ РАН). Кластер построен из вычислительных узлов компании IBM на базе процессоров PowerPC и системной сети Myrinet.

Бурное развитие кластерных технологий за последние годы хорошо видно из анализа списка Тор500: с 2000 по 2004 г. доля кластеров в списке увеличилась с 2,2 до 60,8%. Если в 2000 г. в числе 40 самых мощных установок присутствовало лишь два кластера (самый мощный - 31-е место), то к 2004 г. их число среди первых 40 машин составило 24). При этом, по данным последней редакции Тор500, более 71,5% процессоров, использованных для ерздания суперкомпьютеров, - это массово выпускаемые процессоры компаниями Intel и AMD.

Кластерные технологии применяются и в новейших суперкомпьютерных разработках ведущих изготовителей: например, в самом мощном на сегодня суперкомпьютере IBM BlueGene/L с производительностью более 136 TFlops использованы многие элементы кластерной архитектуры.

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

Именно развитие кластерных технологий сделало высокопроизводительные вычисления широко доступными и позволило самым разным предприятиям воспользоваться их преимуществами. Вот как распределяются области применения 500 самых мощных компьютеров мира: 44,3% - добывающая, электронная, автомобильная, авиационная и др. отрасли тяжелой промышленности и машиностроения, чуть более 20% - наука и образование, суперкомпьютерные центры. Более 18% приходится на погодные и климатические исследования, 7% - ядерные, космические, энергетические и военные государственные программы, 3,5% - финансовые компании и банки. Кроме того, в списке есть компании и организации, занимающиеся медициной и разработкой новых лекарств, компьютерной графикой, перевозками, торговлей, производством продуктов питания, консалтингом и государственным управлением.

Что касается использования суперкомпьютеров в России, то в текущем рейтинге суперкомпьютеров СНГ Тор50, впервые изданном в декабре 2004 г., представлены только три класса пользователей: научные институты и университеты, предприятия, занятые в тяжелой и нефтедобывающей промышленности, а также финансовые структуры.

В среднем отечественные суперкомпьютеры пока еще сильно уступают западным по производительности: машины, используемые для научных исследований, в 15 раз, вычислительные ресурсы финансовых компаний - в 10 раз, промышленные суперкомпьютеры - в 9 раз. Однако уже вторая редакция списка Тор50, опубликованная в апреле 2005 г., демонстрирует быстрое развитие отрасли. Так, количество систем, работающих в промышленной сфере, увеличилось с 2 до 16%, причем их средняя производительность выросла сразу на 135%. Число суперкомпьютеров финансовых компаний и банков также возросло с 2 до 18%. Доля суперкомпьютеров, используемых для научных исследований, сократилась с 96 до 66%, а их средняя производительность выросла на 70%. В целом вторая редакция отечественного суперкомпьютерного рейтинга демонстрирует существенный рост доли систем коммерческого использования. Самое большое количество отечественных суперкомпьютеров поставлено фирмой IBM (26%), но российские изготовители лишь немного уступают ей.


кафедра 29 "Управляющие Интеллектуальные Системы"

Реферат на тему:

Кластерные системы

Выполнил:

студент группы К9-292

Попов И.А

МОСКВА 2001

1. Введение

2. Основные классы современных параллельных компьютеров

3. Кластерная архитектура параллельных компьютеров

4. Цели создания кластерных систем

5. Отказоустойчивые кластеры

6. Высокопроизводительные кластеры

7. Проект Beowulf

8. Заключение

9. Литература


Введение

Развитие многопроцессорных вычислительных систем

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

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

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

Производительность персональных компьютеров на базе процессоров Intel в последние годы также значительно выросла. Такие компьютеры стали создавать серьезную конкуренцию рабочим станциям на базе более дорогих и мощных RISC процессоров. Одновременно стала приобретать все большую популярность ОС Linux - бесплатно распространяемая версия UNIX. При этом в научных организациях и университетах, где и разрабатывается большинство кластерных систем, как правило, имеются специалисты по ОС Linux.

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


Основные классы современных параллельных компьютеров

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

С аппаратной точки зрения, основным параметром классификации паралелльных компьютеров является наличие общей (SMP) или распределенной памяти (MPP). Нечто среднее между SMP и MPP представляют собой NUMA-архитектуры, где память физически распределена, но логически общедоступна.

Симметричные мультипроцессорные системы

SMP система состоит из нескольких однородных процессоров и массива общей памяти. Один из часто используемых в SMP архитектурах подходов для формирования масштабируемой, общедоступной системы памяти, состоит в однородной организации доступа к памяти посредством организации масштабируемого канала память-процессоры:

Каждая операция доступа к памяти интерпретируется как транзакция по шине процессоры-память. Когерентность кэшей поддерживается аппаратными средствами.

В SMP каждый процессор имеет по крайней мере одну собственную кэш-память (а возможно, и несколько).

Можно сказать, что SMP система - это один компьютер с несколькими равноправными процессорами. Все остальное - в одном экземпляре: одна память, одна подсистема ввода/вывода, одна операционная система. Слово "равноправный" означает, что каждый процессор может делать все, что любой другой. Каждый процессор имеет доступ ко всей памяти, может выполнять любую операцию ввода/вывода, прерывать другие процессоры и т.д.

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

Массивно-параллельные системы

Массивно-параллельная система MPP состоит из однородных вычислительных узлов , включающих в себя:

  • один или несколько центральных процессоров (обычно RISC)
  • локальную память (прямой доступ к памяти других узлов невозможен)
  • коммуникационный процессор или сетевой адаптер
  • жесткие диски и/или другие устройства В/В

К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.)

Системы с неоднородным доступом к памяти NUMA

NUMA (nonuniform memory access) в отличие от привычной SMP архитектуры с разделяемой памятью представляет собой несколько отдельных процессоров, каждый из которых, кроме собственного кэша, обладает также локальной памятью:

В подобной архитектуре процессор и модули памяти тесно интегрированы, следовательно, скорость доступа к локальной памяти гораздо выше, чем к памяти “соседнего” процессора. Подсистемы ввода-вывода могут быть частью каждого узла или консолидированы на выделенных узлах ввода-вывода. Если во всей системе поддерживается когерентность кэшей, то такую архитектуру называют cc-NUMA.

Проще всего охарактеризовать NUMA-систему, представив себе большую систему SMP, разделенную на несколько частей, эти части связаны коммуникационной магистралью, подключенной к системным шинам, и каждая часть включает собственную основную память и подсистему ввода/вывода. Это и есть NUMA: большая SMP, разбитая на набор более мелких и простых SMP. Основной проблемой NUMA является обеспечение когерентности кэшей. Аппаратура позволяет работать со всеми отдельными устройствами основной памяти составных частей системы (называемых обычно узлами) как с единой гигантской памятью.

Кластерная архитектура

Рассмотрим место кластерной архитектуры вычислительных систем в данной классификации.

Кластер - это связанный набор полноценных компьютеров, используемый в качестве единого ресурса. Под понятием "полноценный компьютер" понимается завершенная компьютерная система, обладающая всем, что требуется для ее функционирования, включая процессоры, память, подсистему ввода/вывода, а также операционную систему, подсистемы, приложения и т.д. Обычно для этого годятся персональные компьютеры или параллельные системы, которые могут обладать архитектурой SMP и даже NUMA. Кластеры являются слабосвязанными системами, связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Поэтому они являются более дешевой в построении модификацией MPP архитектуры.

Кластерная архитектура параллельных компьютеров

Общие принципы

Как уже было сказано раньше вычислительный кластер - это совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи (рис.3), которая для пользователя представляется в качестве единого ресурса. Такую концепцию кластера впервые предложила и реализовала в начале 80-х корпорация Digital Equipment, которая и по сей день развивает эту технологию

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

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

В качестве вычислительных узлов в кластере обычно используются однопроцессорные персональные компьютеры, двух- или четырехпроцессорные SMP-серверы. Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Linux, NT, Solaris и т.п. Состав и мощность узлов может меняться даже в рамках одного кластера, давая возможность создавать неоднородные системы. Выбор конкретной коммуникационной среды определяется многими факторами: особенностями класса решаемых задач, необходимостью последующего расширения кластера и т.п. Возможно включение в конфигурацию специализированных компьютеров, например, файл-сервера, и, как правило, предоставлена возможность удаленного доступа на кластер через Internet.

Из определения архитектуры кластерных систем следует, что она включает в себя очень широкий спектр систем. Рассматривая крайние точки, кластером можно считать как пару ПК, связанных локальной 10-мегабитной сетью Ethernet, так и вычислительную систему, создаваемую в рамках проекта Cplant в Национальной лаборатории Sandia: 1400 рабочих станций на базе процессоров Alpha, связанных высокоскоростной сетью Myrinet.

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

Коммуникационные технологии построения кластеров

Кластеры могут стоится как на основе специализированных высокоскоростных шин передачи данных, так и на основе массовых сетевых технологий. Среди массовых коммуникационных стандартов сейчас чаще всего используется сеть Ethernet или более ее производительный вариант - Fast Ethernet, как правило, на базе коммутаторов. Однако большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, которые можно эффективно решать на таком кластере. Если от кластера требуется большая производительность и универсальность, то необходимо применять более скоростные и специализированные технологии. К ним относятся SCI, Myrinet, cLAN, ServerNet и др. Сравнительная характеристика параметров этих технологий приведена в
таблице 1.

Латентность (MPI)

Пропускная способность(MPI)

180 Мбайт/c

Пропускная способность (аппаратная)

400 Мбайт/c

160 Мбайт/c

150 Мбайт/c

12,5 Мбайт/c

Реализация MPI

HPVM, MPICH-GM и др.

Таблица 1.

Производительность коммуникационных сетей в кластерных системах определяется несколькими числовыми характеристиками. Основных характеристик две: латентность – время начальной задержки при посылке сообщений и пропускная способность сети, определяющая скорость передачи информации по каналам связи. При этом важны не столько пиковые характеристики, заявленные в стандарте, сколько реальные, достигаемые на уровне пользовательских приложений, например, на уровне MPI-приложений. В частности, после вызова пользователем функции посылки сообщения Send() сообщение последовательно пройдет через целый набор слоев, определяемых особенностями организации программного обеспечения и аппаратуры, прежде, чем покинуть процессор – поэтому существует существенный разбром по стандартам значений латентности. Наличие латентности приводит к тому, что максимальная скорость передачи по сети не может быть достигнута на сообщениях с небольшой длиной.

Скорость передачи данных по сети в рамках технологий Fast Ethernet и Scalable Coherent Interface (SCI) зависит от длины сообщения. Для Fast Ethernet характерна большая величина латентности – 160-180 мкс, в то время как латентность для SCI это величина около 5,6 мкс. Максимальная скорость передачи для этих же технологий 10 Мбайт/c и 80 Мбайт/с соответственно.

Цели создания кластерных систем

Разработчики архитектур кластерных систем приследовали различные цели при их создании. Первой была фирма Digital Equipment с кластерами VAX/VMS. Целью создания этой машины было повышение надежности работы системы, обеспечение высокой готовности и отказоустойчивости системы. В настоящее время существует множество аналогичных по архитектуре систем от других производителей.

Другой целью создания кластерных систем является создание дешевых высокопроизводительных параллельных вычислительных систем. Один из первых проектов, давший имя целому классу параллельных систем – кластер Beowulf – возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проект Beowulf начался летом 1994 года, и вскоре был собран 16-процессорный кластер на процессорах Intel 486DX4/100 МГц. На каждом узле было установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-адаптера. Эта система оказалась очень удачной по отношению цена/производительность, поэтому такую архитектуру стали развивать и широко использовать в других научных организациях и институтах.

Для каждого класса кластеров характерны свои особенности архитекуры и применяемые аппаратные средства. Рассмотрим их более подробно.

Отказоустойчивые кластеры

Принципы построения

Для обеспечения надежности и отказоустойчивости вычислительных систем применяется множество различных аппаратурных и программных решений. Например, в системе может дублироваться все подверженные отказам элементы - источники питания, процессоры, оперативная и внешняя память. Такие отказоустойчивые системы с резервированием компонентов применяются для решения задач, в которых недостаточно надежности обычных вычислительных систем, оцениваемой в настоящий момент вероятностью безотказной работы 99%. В таких задачах требуется вероятность 99,999% и выше. Такую надежность можно достичь применяя отличные от приведенного выше методы повышения отказоустойчивости. В зависимости от уровня готовности вычислительной системы к использованию выделяют четыре типа надежности:

PRIVATEУровень готовности, %

Мaкс. время простоя

Тип системы

3,5 дня в год

Обычная (Conventional)

8,5 часов в год

Высокая надежность (High Availability)

1 час в год

Отказоустойчивая (Fault Resilient)

5 минут в год

Безотказная (Fault Tolerant)

Таблица 2.

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

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

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

Кластеры могут иметь разделяемую память на внешних дисках, как правило, на дисковом массиве RAID. Дисковый массив RAID - это серверная подсистема ввода- вывода для хранения данных большого объема. В массивах RAID значительное число дисков относительно малой емкости используется для хранения крупных объемов данных, а также для обеспечения более высокой надежности и избыточности. Подобный массив воспринимается компьютером как единое логическое устройство.

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

Узлы кластера контролируют работоспособность друг друга и обмениваются специфической «кластерной» информацией, например, о конфигурации кластера, а также передавать данные между разделяемыми накопителями и координировать их использование. Контроль работоспособности осуществляется с помощью специального сигнала, который узлы кластера передают друг другу, для того чтобы подтвердить свое нормальное функционирование. Прекращение подачи сигналов с одного из узлов сигнализирует кластерному программному обеспечению о произошедшем сбое и необходимости перераспределить нагрузку на оставшиеся узлы. В качестве примера рассмотрим отказоустойчивый кластер VAX/VMS.

Кластера VAX/VMS

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

VAX-кластер обладает следующими свойствами:

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

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

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

Удобство обслуживания системы. Общие базы данных могут обслуживаться с единственного места. Прикладные программы могут инсталлироваться только однажды на общих дисках кластера и разделяться между всеми компьютерами кластера.

Расширяемость. Увеличение вычислительной мощности кластера достигается подключением к нему дополнительных VAX-компьютеров. Дополнительные накопители на магнитных дисках и магнитных лентах становятся доступными для всех компьютеров, входящих в кластер.

Работа VAX-кластера определяется двумя главными компонентами. Первым компонентом является высокоскоростной механизм связи, а вторым - системное программное обеспечение, которое обеспечивает клиентам прозрачный доступ к системному сервису. Физически связи внутри кластера реализуются с помощью трех различных шинных технологий с различными характеристиками производительности.

Основные методы связи в VAX-кластере представлены на рис. 4.

Рис. 4 VAX/VMS-кластер

Шина связи компьютеров CI (Computer Interconnect) работает со скоростью 70 Мбит/с и используется для соединения компьютеров VAX и контроллеров HSC с помощью коммутатора Star Coupler. Каждая связь CI имеет двойные избыточные линии, две для передачи и две для приема, используя базовую технологию CSMA, которая для устранения коллизий использует специфические для данного узла задержки. Максимальная длина связи CI составляет 45 метров. Звездообразный коммутатор Star Coupler может поддерживать подключение до 32 шин CI, каждая из которых предназначена для подсоединения компьютера VAX или контроллера HSC. Контроллер HSC представляет собой интеллектуальное устройство, которое управляет работой дисковых и ленточных накопителей.

Компьютеры VAX могут объединяться в кластер также посредством локальной сети

Ethernet, используя NI - Network Interconnect (так называемые локальные VAX-кластеры), однако производительность таких систем сравнительно низкая из-за необходимости делить пропускную способность сети Ethernet между компьютерами кластера и другими клиентами сети.

Также кластера могут стоиться на основе шины DSSI (Digital Storage System Interconnect). На шине DSSI могут объединяться до четырех компьютеров VAX нижнего и среднего класса. Каждый компьютер может поддерживать несколько адаптеров DSSI. Отдельная шина DSSI работает со скоростью 4 Мбайт/с (32 Мбит/с) и допускает подсоединение до 8 устройств. Поддерживаются следующие типы устройств: системный адаптер DSSI, дисковый контроллер серии RF и ленточный контроллер серии TF. DSSI ограничивает расстояние между узлами в кластере 25 метрами.

Системное программное обеспечение VAX-кластеров

Для гарантии правильного взаимодействия процессоров друг с другом при обращениях к общим ресурсам, таким, например, как диски, компания DEC использует распределенный менеджер блокировок DLM (Distributed Lock Manager). Очень важной функцией DLM является обеспечение когерентного состояния дисковых кэшей для операций ввода/вывода операционной системы и прикладных программ. Например, в приложениях реляционных СУБД DLM несет ответственность за поддержание согласованного состояния между буферами базы данных на различных компьютерах кластера.

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

Работа с DLM связана со значительными накладными расходами. Накладные расходы в среде VAX/VMS могут быть большими, требующими передачи до шести сообщений по шине CI для одной операции ввода/вывода. Накладные расходы могут достигать величины 20% для каждого процессора в кластере.

Высокопроизводительные кластеры

Принципы построения

Архитектура высокопроизводительных кластеров появилась как развитие принципов построения систем MPP на менее производительных и массовых компонентах, управляемых операционной ситемой общего назначения. Кластеры также как и MPP системы состоят из слабосвязанных узлов, которые могут быть как однородными, так и, в отличие от MPP, различными или гетерогенными. Особое внимание при проектировании высокопроизводительной кластерной архутектуры уделяется обеспечению высокой эффективности коммуникационной шины, связывающей узлы кластера. Так как в кластерах нередко применяются массовые относительно низкопроизводительные шины, то приходится принимать ряд мер по исключению их низкой пропускной способности на производительность кластеров и организацию эффективного распараллеливания в кластере. Так например пропускная способность одной из самых высокоскоростных технологий Fast Ethernet на порядки ниже, чем у межсоединений в современных суперкомпьютерах МРР-архитектуры.

Для решения проблем низкой производительности сети применяют несколько методов:

Кластер разделяется на несколько сегментов, в пределах которых узлы соединены высокопроизводительной шиной типа Myrinet, а связь между узлами разных сегментов осуществляется низкопроизводительными сетями типа Ethernet/Fast Ethernet. Это позволяет вместе с сокращением расходов на коммуникационную среду существенно повысить производительность таких кластеров при решении задач с интенсивным обменом данными между процессами.

IPX). Такой метод часто используют в ситемах класса Beowulf.

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

Проект Beowulf

Beowulf - это скандинавский эпос, повествующий о событиях VII - первой трети VIII века, участником которых является одноименный герой, прославивший себя в сражениях.

Одним из примеров реализации кластерной системы такой структуры являются кластеры Beowulf. Проект Beowulf объединил около полутора десятков организаций (главным образом университетов) в Соединенных Штатах. Ведущие разработчики проекта - специалисты агентства NASA. В данном виде кластеров можно выделить следующие основные особенности:

История проекта Beowulf

Проект начался летом 1994 года в научно-космическом центре NASA - Goddard Space Flight Center (GSFC), точнее в созданном на его основе CESDIS (Center of Excellence in Space Data and Information Sciences).

Первый Beowulf-кластер был создан на основе компьютеров Intel архитектуры под ОС Linux. Это была система, состоящая из 16 узлов (на процессорах 486DX4/100MHz, 16MB памяти и 3 сетевых адаптера на каждом узле, 3 "параллельных" Ethernet-кабеля по 10Mbit). Он создавался как вычислительный ресурс проекта "Earth and Space Sciences Project" (ESS).

Далее в GSFC и других подразделениях NASA были собраны другие, более мощные кластеры. Например, кластер theHIVE (Highly-parallel Integrated Virtual Environment) содержит 64 узла по 2 процессора Pentium Pro/200MHz и 4GB памяти в каждом, 5 коммутаторов Fast Ethernet. Общая стоимость этого кластера составляет примерно $210 тыс. В рамках проекта Beowulf был разработан ряд высокопроизводительных и специализированных сетевых драйверов (в частности, драйвер для использования нескольких Ethernet-каналов одновременно).

Архитектура Beowulf

Узлы кластера .

Это или однопроцессорные ПК, или SMP-сервера с небольшим числом процессоров (2-4, возможно до 6). По некоторым причинам оптимальным считается построение кластеров на базе двухпроцессорных систем, несмотря на то, что в этом случае настройка кластера будет несколько сложнее (главным образом потому, что доcтупны относительно недорогие материнские платы для 2 процессоров Pentium II/III). Стоит установить на каждый узел 64-128MB оперативной памяти (для двухпроцессорных систем 64-256MB).

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

При комплектации рабочих узлов вполне возможно отказаться от жестких дисков - эти узлы будут загружать ОС через сеть с центральной машины, что, кроме экономии средств, позволяет сконфигурировать ОС и все необходимое ПО только 1 раз (на центральной машине). Если эти узлы не будут одновременно использоваться в качестве пользовательских рабочих мест, нет необходимости устанавливать на них видеокарты и мониторы. Возможна установка узлов в стойки (rackmounting), что позволит уменьшить место, занимаемое узлами, но будет стоить несколько дороже.

Возможна организация кластеров на базе уже существующих сетей рабочих станций, т.е. рабочие станции пользователей могут использоваться в качестве узлов кластера ночью и в выходные дни. Системы такого типа иногда называют COW (Cluster of Workstations).

Количество узлов следует выбирать исходя из необходимых вычислительных ресурсов и доступных финансовых средств. Следует понимать, что при большом числе узлов придется также устанавливать более сложное и дорогое сетевое оборудование.

Сеть

Основные типы локальных сетей, задействованные в рамках проекта Beowulf, - это Gigabit Ethernet, Fast Ethernet и 100-VG AnyLAN. В простейшем случае используется один сегмент Ethernet (10Mbit/sec на витой паре). Однако дешевизна такой сети, вследствие коллизий оборачивается большими накладными расходами на межпроцессорные обмены; а хорошую производительность такого кластера следует ожидать только на задачах с очень простой параллельной структурой и при очень редких взаимодействиях между процессами (например, перебор вариантов).

Для получения хорошей производительности межпроцессорных обменов используют полнодуплексный Fast Ethernet на 100Mbit/sec. При этом для уменьшения числа коллизий или устанавливают несколько "параллельных" сегментов Ethernet, или соединяют узлы кластера через коммутатор (switch).

Более дорогостоящим, но также популярным вариантом являются использование коммутаторов типа Myrinet (1.28Gbit/sec, полный дуплекс).

Менее популярными, но также реально используемыми при построении кластеров сетевыми технологиями являются технологии сLAN, SCI и Gigabit Ethernet.

Иногда для связи между узлами кластера используют параллельно несколько физичеких каналов связи - так называемое «связывание каналов» (channel bonding), которое обычно применяется для технологии Fast Ethernet. При этом каждый узел подсоединяется к коммутатору Fast Ethernet более чем одним каналом. Чтобы достичь этого, узлы оснащаются либо несколькими сетевыми платами, либо многопортовыми платами Fast Ethernet. Применение связывания каналов в узлах под управлением ОС Linux позволяет организовать равномерное распределение нагрузки приема/передачи между соответствующими каналами.

Системное ПО

Операционная система . Обычно используется система Linux в версиях, специально оптимизированных под распределенные параллельные вычисления. Была проведена доработку ядра Linux 2.0. В процессе построения кластеров выяснилось, что стандартные драйверы сетевых устройств в Linux весьма неэффективны. Поэтому были разработаны новые драйверы, в первую очередь для сетей Fast Ethernet и Gigabit Ethernet, и обеспечена возможность логического объединения нескольких параллельных сетевых соединений между персональными компьютерами (аналогично аппаратному связыванию каналов) , что позволяет из дешевых локальных сетей, обладающих низкой пропускной способностью, соорудить сеть с высокой совокупной пропускной способностью.

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

Коммуникационные библиотеки . Наиболее распространенным интерфейсом параллельного программирования в модели передачи сообщений является MPI. Рекомендуемая бесплатная реализация MPI - пакет MPICH, разработанный в Аргоннской Национальной Лаборатории. Для кластеров на базе коммутатора Myrinet разработана система HPVM, куда также входит реализация MPI.

Для эффективной организации параллелизма внутри одной SMP-cистемы возможны два варианта:

  1. Для каждого процессора в SMP-машине порождается отдельный MPI-процесс. MPI-процессы внутри этой системы обмениваются сообщениями через разделяемую память (необходимо настроить MPICH соответствующим образом).
  2. На каждой машине запускается только один MPI-процесс. Внутри каждого MPI-процесса производится распараллеливание в модели "общей памяти", например с помощью директив OpenMP.

После установки реализации MPI имеет смысл протестировать реальную производительность сетевых пересылок.

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

Пример реализации кластера Beowulf - Avalon

PRIVATEMichael Warren и другие ученые из группы теоретической астрофизики построили суперкомпьютер Avalon, который представляет из себя Beowulf -кластер на базе процессоров DEC Alpha/533MHz. Avalon первоначально состоял из 68 процессоров, затем был расширен до 140. В каждом узле установлено 256MB оперативной памяти, EIDE-жесткий диск на 3.2GB, сетевой адаптер от Kingston (общая стоимость узла - $1700). Узлы соединены с помощью 4-х 36-портовых коммутаторов Fast Ethernet и расположенного "в центре" 12-портового коммутатора Gigabit Ethernet от 3Com.

Общая стоимость Avalon - $313 тыс. , а его производительность по LINPACK (47.7 GFLOPS ) позволила ему занять 114 место в 12-й редакции списка Top500 (рядом с 152-процессорной системой IBM SP2). 70-процессорная конфигурация Avalon по многим тестам показала такую же производительность, как 64-процессорная система SGI Origin2000/195MHz стоимость которой превышает $1 млн.

В настоящее время Avalon активно используется в астрофизических, молекулярных и других научных вычислениях. На конференции SC"98 создатели Avalon представили доклад, озаглавленный "Avalon: An Alpha/Linux Cluster Achieves 10 Gflops for $150k" и заслужили премию по показателю цена/производительность ("1998 Gordon Bell Price/Performance Prize").

Заключение

Ведущие производители микропроцессоров: Sun Microsystems, Dell и IBM придерживаются одинаковой точки зрения на будущее отрасли суперкомпьютеров: на смену отдельным, независимым суперкомпьютерам должны прийти группы высокопроизводительных серверов, объединяемых в кластер. Уже сегодня распределенные кластерные системы опережают современные классические суперкомпьютеры по производительности: самый мощный на сегодняшний день компьютер в мире - IBM ASCI White - обладает производительностью в 12 ТераФЛОП, производительность сети SETI@Home оценивается примерно в 15 ТераФЛОП. При этом, IBM ASCI White был продан за 110 миллионов долларов, а за всю историю существования SETI@Home было потрачено около 500 тысяч долларов.

Проанализировав итоги работ, выполненных в рамках проекта Beowulf, можно прийти к следующему выводу: найденные решения позволяют самостоятельно собрать высокопроизводительный кластер на базе стандартных для ПК компонентов и использовать обычное программное обеспечение. Среди самых крупных экземпляров нельзя не отметить 50-узловой кластер в CESDIS, включающий 40 узлов обработки данных (на базе одно- и двухпроцессорных плат Рentium Рro/200 МГц) и 10 масштабирующих узлов (двухпроцессорная плата Рentium Рro/166 МГц). Соотношение стоимость/пиковая производительность в таком кластере представляется очень удачным. Вопрос в том, насколько эффективно удается распараллелить приложения - иными словами, какова будет реальная, а не пиковая производительность. Над решением этой проблемы сейчас и работают участники проекта.


Литература

3. http://newton.gsfc.nasa.gov/thehive/

4. http://www.lobos.nih.gov

5. http://parallel.ru/news/kentucky_klat2.html

6. http://parallel.ru/news/anl_chibacity.html

7. http://parallel.ru/cluster/

8. http://www.ptc.spbu.ru


Resources

MIMD компьютеры

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

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

  • Компьютеры с распределенной памятью (Distributed memory)
    Процессор может обращаться к локальной памяти, может посылать и получать сообщения, передаваемые по сети, соединяющей процессоры. Сообщения используются для осуществления связи между процессорами или, что эквивалентно, для чтения и записи удаленных блоков памяти. В идеализированной сети стоимость посылки сообщения между двумя узлами сети не зависит как от расположения обоих узлов, так и от трафика сети, но зависит от длины сообщения.
  • Компьютеры с общей (разделяемой) памятью (True shared memory)
    Все процессоры совместно обращаются к общей памяти, обычно, через шину или иерархию шин. В идеализированной PRAM (Parallel Random Access Machine - параллельная машина с произвольным доступом) модели, часто используемой в теоретических исследованиях параллельных алгоритмов, любой процессор может обращаться к любой ячейке памяти за одно и то же время. На практике масштабируемость этой архитектуры обычно приводит к некоторой форме иерархии памяти. Частота обращений к общей памяти может быть уменьшена за счет сохранения копий часто используемых данных в кэш-памяти, связанной с каждым процессором. Доступ к этому кэш-памяти намного быстрее, чем непосредственно доступ к общей памяти.
  • Компьютеры с виртуальной общей (разделяемой) памятью (Virtual shared memory)
    Общая память как таковая отсутствует. Каждый процессор имеет собственную локальную память и может обращаться к локальной памяти других процессоров, используя "глобальный адрес". Если "глобальный адрес" указывает не на локальную память, то доступ к памяти реализуется с помощью сообщений, пересылаемых по коммуникационной сети.

Примером машин с общей памятью могут служить:

  • Sun Microsystems (многопроцессорные рабочие станции)
  • Silicon Graphics Challenge (многопроцессорные рабочие станции)
  • Sequent Symmetry
  • Convex
  • Cray 6400.

Следующие компьютеры относятся к классу машин с распределенной памятью

  • IBM-SP1/SP2
  • Parsytec GC
  • CM5 (Thinking Machine Corporation)
  • Cray T3D
  • Paragon (Intel Corp.)
  • nCUBE
  • Meiko CS-2
  • AVX (Alex Parallel Computers)
  • IMS B008

MIMD архитектуры с распределенной памятью можно так же классифицировать по пропускной способности коммутирующей сети. Например, в архитектуре, в которой пары из процессора и модуля памяти (процессорный элемент) соединены сетью с топологий реш§тка, каждый процессор имеет одно и то же число подключений к сети вне зависимости от числа процессоров компьютера. Общая пропускная способность такой сети растет линейно относительно числа процессоров. С другой стороны в архитектуре, имеющей сеть с топологий гиперкуб, число соединений процессора с сетью является логарифмической функцией от числа процессоров, а пропускная способность сети растет быстрее, чем линейно по отношению к числу процессоров. В топологии клика каждый процессор должен быть соединен со всеми другими процессорами.

Сеть с топологией 2D реш§тка(тор)



Сеть с топологией 2D тор

Сеть с топологией клика

Национального Центра Суперкомпьютерных Приложений (университет шт. Иллинойс, Urbana-Champaign)

MPI: The Message Passing Interface

Название "интерфейс передачи сообщений", говорит само за себя. Это хорошо стандартизованный механизм для построения параллельных программ в модели обмена сообщениями. Существуют стандартные "привязки" MPI к языкам С/С++, Fortran 77/90. Существуют бесплатные и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI - наиболее широко используемый и динамично развивающийся интерфейс из своего класса.

Beowulf - кластеры на базе ОС Linux

Михаил Кузьминский

"Открытые системы"

На пороге тысячелетий мы имеем все шансы стать свидетелями монополизации компьютерной индустрии, которая может охватить как микропроцессоры, так и операционные системы. Конечно же, речь идет о микропроцессорах от Intel (Merced грозит вытеснить процессоры архитектуры RISC) и ОС от Microsoft.

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

Некоторые специалисты сопоставляют потенциальную монополизацию компьютерного рынка с наблюдавшимся в 70-е годы монопольным господством IBM - как в области мэйнфреймов, так и операционных систем. Я долгое время работаю с этой техникой и по мере распространения в нашей стране ОС Unix все больше осознаю многие преимущества операционной системы MVS производства IBM. Тем не менее я разделяю распространенную точку зрения, что подобная монополия не способствовала ускорению прогресса.

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

Linux как общественное явление

Мы уже не удивляемся тому, что Linux cтала заметным явлением компьютерной жизни. В сочетании с богатейшим набором свободно распространяемого программного обеспечения GNU эта операционная система стала чрезвычайно популярна у некоммерческих пользователей как у нас, так и за рубежом. Ее популярность все возрастает. Версии Linux существуют не только для платформы Intel x86, но и для других процессорных архитектур, в том числе DEC Alрha, и широко используются для приложений Internet, а также выполнения задач расчетного характера. Одним словом, Linux стала своеобразной "народной операционной системой". Hельзя, впрочем, сказать, что у Linux нет слабых мест; одно из них - недостаточная поддержка SMР-архитектур.

Самый дешевый способ нарастить компьютерные ресурсы, в том числе вычислительную мощность, - это построить кластер. Массивно-параллельные суперкомпьютеры с физически и логически распределенной оперативной памятью также можно рассматривать как своеобразные кластеры. Наиболее яркий пример такой архитектуры - знаменитый компьютер IBM SР2.

Весь вопрос в том, что связывает компьютеры (узлы) в кластер. В "настоящих" суперкомпьютерах для этого используется специализированная и поэтому дорогая аппаратура, призванная обеспечить высокую пропускную способность. В кластерах, как правило, применяются обычные сетевые стандарты - Ethernet, FDDI, ATM или HiРРI.

Кластерные технологии с использованием операционной системы Linux начали развиваться несколько лет назад и стали доступны задолго до появления Wolfрack для Windows NT. Так в середине 90-х годов и возник проект Beowulf.

Герой эпической поэмы

"Беовульф" - это скандинавский эпос, повествующий о событиях VII - первой трети VIII века, участником которых является одноименный герой, прославивший себя в сражениях. Неизвестно, задумывались ли авторы проекта, с кем ныне будет сражаться Beowulf (вероятно, с Windows NT?), однако героический образ позволил объединить в консорциум около полутора десятков организаций (главным образом университетов) в Соединенных Штатах. Нельзя сказать, что среди участников проекта доминируют суперкомпьютерные центры, однако кластеры "Локи" и "Мегалон" установлены в таких известных в мире высокопроизводительных вычислений центрах, как Лос-Аламос и лаборатория Sandia Министерства энергетики США; ведущие разработчики проекта - специалисты агентства NASA. Вообще, все без исключения кластеры, созданные участниками проекта, получают громкие имена.

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

Узлами в технологии Beowulf являются материнские платы ПК. Обычно в узлах задействованы также локальные жесткие диски. Для связи узлов используются стандартные типы локальных сетей. Этот вопрос мы рассмотрим ниже, сначала же остановимся на программном обеспечении.

Его основу в Beowulf составляет обычная коммерчески доступная ОС Linux, которую можно приобрести на CD-ROM. Первое время большинство участников проекта ориентировались на компакт-диски, издаваемые Slackware, а сейчас предпочтение отдаетcя версии RedHat.

В обычной ОС Linux можно инсталлировать известные средства распараллеливания в модели обмена сообщениями (LAM MРI 6.1, РVM 3.3.11 и другие). Можно также воспользоваться стандартом р-threads и стандартными средствами межпроцессорного взаимодействия, входящими в любую ОС Unix System V. В рамках проекта Beowulf были выполнены и серьезные дополнительные разработки.

Прежде всего следует отметить доработку ядра Linux 2.0. В процессе построения кластеров выяснилось, что стандартные драйверы сетевых устройств в Linux весьма неэффективны. Поэтому были разработаны новые драйверы (автор большинства разработок - Дональд Бекер), в первую очередь для сетей Fast Ethernet и Gigabit Ethernet, и обеспечена возможность логического объединения нескольких параллельных сетевых соединений между персональными компьютерами, что позволяет из дешевых локальных сетей, обладающих более чем скромной скоростью, соорудить сеть с высокой совокупной пропускной способностью.

Как и во всяком кластере, в каждом узле живет своя копия ядра ОС. Благодаря доработкам обеспечена уникальность идентификаторов процессов в рамках всего кластера, а не отдельных узлов, а также "удаленная доставка" сигналов ОС Linux.

Кроме того, надо отметить функции загрузки по сети (netbooting) при работе с материнскими платами Intel РR 440FX, причем они могут применяться и для работы с другими материнскими платами, снабженными AMI BIOS.

Очень интересные возможности предоставляют механизмы сетевой виртуальной памяти (Network Virtual Memory) или разделяемой распределенной памяти DSM (Distributed Shared Memory), позволяющие создать для процесса определенную "иллюзию" общей оперативной памяти узлов.

Сеть - дело тонкое

Поскольку для распараллеливания суперкомпьютерных приложений вообще, и кластерных в частности, необходима высокая пропускная способность и низкие задержки для обмена сообщениями между узлами, сетевые характеристики становятся параметрами, определяющими производительность кластера. Выбор микропроцессоров для узлов очевиден - это стандартные процессоры производства Intel; а вот с топологией кластера, типом сети и сетевых плат можно поэкспериментировать. Именно в этой области и проводились основные исследования.

При анализе различных сетевых плат ПК, представленных сегодня на рынке, особое внимание было уделено таким характеристикам, как эффективная поддержка широковещательной рассылки (multicasting), поддержка работы с пакетами больших размеров и т. д. Основные типы локальных сетей, задействованные в рамках проекта Beowulf, - это Gigabit Ethernet, Fast Ethernet и 100-VG AnyLAN. (Возможности ATM-технологии также активно исследовались, но, насколько известно автору, это делалось вне рамок данного проекта.)

Как самому собрать суперкомпьютер

Проанализировав итоги работ, выполненных в рамках проекта Beowulf, можно прийти к следующему выводу: найденные решения позволяют самостоятельно собрать высокопроизводительный кластер на базе стандартных для ПК компонентов и использовать обычное программное обеспечение. Среди самых крупных экземпляров нельзя не отметить 50-узловой кластер в CESDIS, включающий 40 узлов обработки данных (на базе одно- и двухпроцессорных плат Рentium Рro/200 МГц) и 10 масштабирующих узлов (двухпроцессорная плата Рentium Рro/166 МГц). Соотношение стоимость/пиковая производительность в таком кластере представляется очень удачным. Вопрос в том, насколько эффективно удается распараллелить приложения - иными словами, какова будет реальная, а не пиковая производительность. Над решением этой проблемы сейчас и работают участники проекта.

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

При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах. Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку.

Используются стандартные для рабочих станций ОС, чаще всего, свободно распространяемые - Linux/FreeBSD, вместе со специальными средствами поддержки параллельного программирования и распределения нагрузки. Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Более подробно она рассмотрена в следующем параграфе.

История развития кластерной архитектуры.

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

Один из первых проектов, давший имя целому классу параллельных систем – кластеры Beowulf – возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проект Beowulf стартовал летом 1994 года, и вскоре был собран 16-процессорный кластер на процессорах Intel 486DX4/100 МГц. На каждом узле было установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-адаптера. Для работы в такой конфигурации были разработаны специальные драйверы, распределяющие трафик между доступными сетевыми картами.

Позже в GSFC был собран кластер theHIVE – Highly-parallel Integrated Virtual Environment , структура которого показана на рис. 2. Этот кластер состоит из четырех подкластеров E, B, G, и DL, объединяя 332 процессора и два выделенных хост-узла. Все узлы данного кластера работают под управлением RedHat Linux.

В 1998 году в Лос-Аламосской национальной лаборатории астрофизик Майкл Уоррен и другие ученые из группы теоретической астрофизики построили суперкомпьютер Avalon, который представляет собой Linux-кластер на базе процессоров Alpha 21164A с тактовой частотой 533 МГц. Первоначально Avalon состоял из 68 процессоров, затем был расширен до 140. В каждом узле установлено по 256 Мбайт оперативной памяти, жесткий диск на 3 Гбайт и сетевой адаптер Fast Ethernet. Общая стоимость проекта Avalon составила 313 тыс. долл., а показанная им производительность на тесте LINPACK – 47,7 GFLOPS, позволила ему занять 114 место в 12-й редакции списка Top500 рядом с 152-процессорной системой IBM RS/6000 SP. В том же 1998 году на самой престижной конференции в области высокопроизводительных вычислений Supercomputing’98 создатели Avalon представили доклад «Avalon: An Alpha/Linux Cluster Achieves 10 Gflops for $150k», получивший первую премию в номинации «наилучшее отношение цена/производительность».

В апреле текущего года в рамках проекта AC3 в Корнелльском Университете для биомедицинских исследований был установлен кластер Velocity+, состоящий из 64 узлов с двумя процессорами Pentium III/733 МГц и 2 Гбайт оперативной памяти каждый и с общей дисковой памятью 27 Гбайт. Узлы работают под управлением Windows 2000 и объединены сетью cLAN компании Giganet.

Проект Lots of Boxes on Shelfes реализован в Национальном Институте здоровья США в апреле 1997 года и интересен использованием в качестве коммуникационной среды технологии Gigabit Ethernet. Сначала кластер состоял из 47 узлов с двумя процессорами Pentium Pro/200 МГц, 128 Мбайт оперативной памяти и диском на 1,2 Гбайт на каждом узле. В 1998 году был реализован

следующий этап проекта – LoBoS2, в ходе которого узлы были преобразованы в настольные компьютеры с сохранением объединения в кластер. Сейчас LoBoS2 состоит из 100 вычислительных узлов, содержащих по два процессора Pentium II/450 МГц, 256 Мбайт оперативной и 9 Гбайт дисковой памяти. Дополнительно к кластеру подключены 4 управляющих компьютера с общим RAID-массивом емкостью 1,2 Тбайт.

Одной из последних кластерных разработок стал суперкомпьютер AMD Presto III, представляющий собой кластер Beowulf из 78 процессоров Athlon. Компьютер установлен в Токийском Технологическом Институте. На сегодняшний день AMD построила 8 суперкомпьютеров, объединенных в кластеры по методу Beowulf, работающих под управлением ОС Linux.

Кластеры IBM

Компания IBM предлагает несколько типов слабо связанных систем на базе RS/6000, объединенных в кластеры и работающих под управлением программного продукта High-Availability Clastered Multiprocessor/6000 (HACMP/6000).

Узлы кластера работают параллельно, разделяя доступ к логическим и физическим ресурсам пользуясь возможностями менеджера блокировок, входящего в состав HACMP/6000.

Начиная с объявления в 1991 году продукт HACMP/6000 постоянно развивался. В его состав были включены параллельный менеджер ресурсов, распределенный менеджер блокировок и параллельный менеджер логических томов, причем последний обеспечил возможность балансировки загрузки на уровне всего кластера. Максимальное количество узлов в кластере возросло до восьми. В настоящее время в составе кластера появились узлы с симметричной многопроцессорной обработкой, построенные по технологии Data Crossbar Switch, обеспечивающей линейный рост производительности с увеличением числа процессоров.

Кластеры RS/6000 строятся на базе локальных сетей Ethernet, Token Ring или FDDI и могут быть сконфигурированы различными способами с точки зрения обеспечения повышенной надежности:

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

IBM SP2 лидируют в списке крупнейших суперкомпьютеров TOP500 по числу инсталляций (141 установка, а всего в мире работает 8275 таких компьютеров с общим числом узлов свыше 86 тыс. В основу этих суперкомпьютеров заложенный в основу архитектуры кластерный подход с использованием мощного центрального коммутатора. IBM использует этот подход уже много лет.

Общая архитектура SP2

Общее представление об архитектуре SP2 дает рис. 1. Основная ее особенность архитектуры - применение высокоскоростного коммутатора с низкими задержками для соединения узлов между собой. Эта внешне предельно простая схема, как показал опыт, оказалась чрезвычайно гибкой. Сначала узлы SP2 были однопроцессорными, затем появились узлы с SMP-архитектурой.

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

большую гибкость выбора конфигураций. Общее число узлов в вычислительной системе может достигать 512. Узлы SP2 фактически являются самостоятельными компьютерами, и их прямые аналоги продаются корпорацией IBM под самостоятельными названиями. Наиболее ярким примером этого является четырехпроцессорный SMP-сервер RS/6000 44P-270 c микропроцессорами Power3-II, который сам по себе можно отнести к классу компьютеров среднего класса или даже к мини-суперкомпьютерам.

Устанавливавшиеся в узлах SP2 микропроцессоры развивались по двум архитектурным линиям: Power - Power2 - Power3 - Power3-II и по линии PowerPC вплоть до модели 604e с тактовой частотой 332 МГц.

Традиционными для SP2 являются «тонкие» (Thin Node) и «широкие» (Wide Node) узлы, обладающие SMP-архитектурой. В них могут устанавливаться как PowerPC 604e (от двух до четырех процессоров), так и Power3-II (до четырех). Емкость оперативной памяти узлов составляет от 256 Мбайт до 3 Гбайт (при использовании Power3-II - до 8 Гбайт). Основные отличия между тонкими и широкими узлами касаются подсистемы ввода/вывода. Широкие узлы предназначены для задач, требующих более мощных возможностей ввода/вывода: в них имеется по десять слотов PCI (в том числе три 64-разрядных) против двух слотов в тонких узлах. Соответственно, и число монтажных отсеков для дисковых устройств в широких узлах больше.

Быстродействие коммутатора характеризуется низкими величинами задержек: 1,2 мс (до 2 мс при числе узлов свыше 80). Это на порядок лучше того, что можно получить в современных Linux-кластерах Beowulf. Пиковая пропускная способность каждого порта: она составляет 150 Мбайт/с в одном направлении (то есть 300 Мбайт/с при дуплексной передаче). Той же пропускной способностью обладают и расположенные в узлах SP2 адаптеры коммутатора. IBM приводит также отличные результаты по задержкам и пропускной способности.

Наиболее мощные узлы SP2 - «высокие» (High Node). Высокий узел - это комплекс, состоящий из вычислительного узла с подсоединенными устройствами расширения ввода/вывода в количестве до шести штук. Такой узел также обладает SMP-архитектурой и содержит до 8 процессоров Power3 с тактовой частотой 222 или 375 МГц.

Кроме того, узел этого типа содержит плату ввода/вывода, которая также подсоединена к системной плате. Плата ввода/вывода содержит два симметричных логических блока SABER, через которые осуществляется передача данных к внешним устройствам, таким

как диски и телекоммуникационное оборудование. На плате ввода/вывода имеется четыре слота 64-разрядной шины PCI и один 32-разрядный слот (частота 33 МГц), а также интегрированы контроллеры UltraSCSI, Ethernet 10/100 Мбит/с, три последовательных и один параллельный порт.

C появлением высоких узлов и микропроцессоров Power3-II/375 МГц на тестах Linpack parallel системы IBM SP2 достигли производительности 723,4 GFLOPS. Этот результат достигнут при использовании 176 узлов (704 процессора). Учитывая, что узлов можно установить до 512, этот результат показывает, что серийно выпускаемые IBM SP2 потенциально близки к отметке 1 TFLOPS.

Кластерные решения Sun Microsystems

Sun Microsystems предлагает кластерные решения на основе своего продукта SPARCclaster PDB Server, в котором в качестве узлов используются многопроцессорные SMP-серверы SPARCserver 1000 и SPARCcenter 2000. Максимально в состав SPARCserver 1000 могут входить до восьми процессоров, а в SPARCcenter 2000 до 20 процессоров SuperSPARC. В комплект базовой поставки входят следующие компоненты: два кластерных узла на основе SPARCserver 1000/1000E или SPARCcenter 2000/2000E, два дисковых массива SPARCstorage Array, а также пакет средств для построения кластера, включающий дублированное оборудование для осуществления связи, консоль управления кластером Claster Management Console, программное обеспечение SPARCclaster PDB Software и пакет сервисной поддержки кластера.

Для обеспечения высокой производительности и готовности коммуникаций кластер поддерживает полное дублирование всех магистралей данных. Узлы кластера объединяются с помощью каналов SunFastEthernet с пропускной способностью 100 Мбит/с. Для подключения дисковых подсистем используется оптоволоконный интерфейс Fibre Channel с пропускной способностью 25 Мбит/с, допускающий удаление накопителей и узлов друг от друга на расстояние до 2 км. Все связи между узлами, узлами и дисковыми подсистемами дублированы на аппаратном уровне. Аппаратные, программные и сетевые средства кластера обеспечивают отсутствие такого места в системе, одиночный отказ или сбой которого выводил бы всю систему из строя.

Университетские проекты

Интересная разработка Университета штата Кентукки – кластер KLAT2 (Kentucky Linux Athlon Testbed 2 ). Система KLAT2 состоит из 64 бездисковых узлов с процессорами AMD Athlon/700 МГц и оперативной памятью 128 Мбайт на каждом. Программное обеспечение, компиляторы и математические библиотеки (SCALAPACK, BLACS и ATLAS) были доработаны для эффективного использования технологии 3DNow! процессоров AMD, что позволило увеличить производительность. Значительный интерес представляет и использованное сетевое решение, названное «Flat Neighbourghood Network» (FNN). В каждом узле установлено четыре сетевых адаптера Fast Ethernet от Smartlink, а узлы соединяются с помощью девяти 32-портовых коммутаторов. При этом для любых двух узлов всегда есть прямое соединение через один из коммутаторов, но нет необходимости в соединении всех узлов через единый коммутатор. Благодаря оптимизации программного обеспечения под архитектуру AMD и топологии FNN удалось добиться рекордного соотношения цена/производительность – 650 долл. за 1 GFLOPS.

Идея разбиения кластера на разделы получила интересное воплощение в проекте Chiba City , реализованном в Аргоннской Национальной лаборатории. Главный раздел содержит 256 вычислительных узлов, на каждом

из которых установлено два процессора Pentium III/500 МГц, 512 Мбайт оперативной памяти и локальный диск емкостью 9 Гбайт. Кроме вычислительного раздела в систему входят раздел визуализации (32 персональных компьютера IBM Intellistation с графическими платами Matrox Millenium G400, 512 Мбайт оперативной памяти и дисками 300 Гбайт), раздел хранения данных (8 серверов IBM Netfinity 7000 с процессорами Xeon/500 МГц и дисками по 300 Гбайт) и управляющий раздел (12 компьютеров IBM Netfinity 500). Все они объединены сетью Myrinet, которая используется для поддержки параллельных приложений, а также сетями Gigabit Ethernet и Fast Ethernet для управляющих и служебных целей. Все разделы делятся на «города» (town) по 32 компьютера. Каждый из них имеет своего «мэра», который локально обслуживает свой «город», снижая нагрузку на служебную сеть и обеспечивая быстрый доступ к локальным ресурсам.

Кластерные проекты в России

В России всегда была высока потребность в высокопроизводительных вычислительных ресурсах, и относительно низкая стоимость кластерных проектов послужила серьезным толчком к широкому распространению подобных решений в нашей стране. Одним из первых появился кластер «Паритет», собранный в ИВВиБД и состоящий из восьми процессоров Pentium II, связанных сетью Myrinet. В 1999 году вариант кластерного решения на основе сети SCI был апробирован в НИЦЭВТ, который, по сути дела, и был пионером использования технологии SCI для построения параллельных систем в России.

Высокопроизводительный кластер на базе коммуникационной сети SCI, установлен в Научно-исследовательском вычислительном центре Московского государственного университета . Кластер НИВЦ включает 12 двухпроцессорных серверов «Эксимер» на базе Intel Pentium III/500 МГц, в общей сложности 24 процессора с суммарной пиковой производительностью 12 млрд. операций в секунду. Общая стоимость системы – около 40 тыс. долл. или примерно 3,33 тыс. за 1 GFLOPS.

Вычислительные узлы кластера соединены однонаправленными каналами сети SCI в двумерный тор 3x4 и одновременно подключены к центральному серверу через вспомогательную сеть Fast Ethernet и коммутатор 3Com Superstack. Сеть SCI – это ядро кластера, делающее данную систему уникальной вычислительной установкой суперкомпьютерного класса, ориентированной на широкий класс задач. Максимальная скорость обмена данными по сети SCI в приложениях пользователя составляет более 80 Мбайт/с, а время латентности около 5,6 мкс. При построении данного вычислительного кластера использовалось интегрированное решение Wulfkit, разработанное компаниями Dolphin Interconnect Solutions и Scali Computer (Норвегия).

Основным средством параллельного программирования на кластере является MPI (Message Passing Interface) версии ScaMPI 1.9.1. На тесте LINPACK при решении системы линейных уравнений с матрицей размера 16000х16000 реально полученная производительность составила более 5,7 GFLOPS. На тестах пакета NPB производительность кластера сравнима, а иногда и превосходит производительность суперкомпьютеров семейства Cray T3E с тем же самым числом процессоров.

Основная область применения вычислительного кластера НИВЦ МГУ – это поддержка фундаментальных научных исследований и учебного процесса.

Из других интересных проектов следует отметить решение, реализованное в Санкт-Петербургском университете на базе технологии Fast Ethernet : собранные кластеры могут использоваться и как полноценные независимые учебные классы, и как единая вычислительная установка, решающая единую задачу. В Самарском научном центре

пошли по пути создания неоднородного вычислительного кластера, в составе которого работают компьютеры на базе процессоров Alpha и Pentium III. В Санкт-Петербургском техническом университете собирается установка на основе процессоров Alpha и сети Myrinet без использования локальных дисков на вычислительных узлах. В Уфимском государственном авиационном техническом университете проектируется кластер на базе двенадцати Alpha-станций, сети Fast Ethernet и ОС Linux.

Московский Государственный Инженерно-Физический Институт (Технический Университет) кафедра 29 "Управляющие Интеллектуальные Системы" Реферат на тему: Кластерные системы
Похожие статьи

© 2024 my-kross.ru. Кошки и собаки. Маленькие животные. Здоровье. Лекарство.