ПОД (пособие) (1184372), страница 24
Текст из файла (страница 24)
Система имеет эксклюзивные или не слишком широко распространенные детали.Таким образом можно достичь очень хорошей производительности, но при более высокойстоимости.Как уже отмечалось, кластеры могут существовать в различных конфигурациях. Наиболеераспространенными типами кластеров являются:системы высокой надежности;системы для высокопроизводительных вычислений;многопоточные системы.Отметим, что границы между этими типами кластеров до некоторой степени размыты, икластер может иметь такие свойства или функции, которые выходят за рамкиперечисленных типов.
Более того, при конфигурировании большого кластера,используемого как система общего назначения, приходится выделять блоки, выполняющиевсе перечисленные функции.72Кластеры для высокопроизводительных вычислений предназначены для параллельныхрасчетов. Эти кластеры обычно собраны из большого числа компьютеров. Разработка такихкластеров является сложным процессом, требующим на каждом шаге согласования такихвопросов как инсталляция, эксплуатация и одновременное управление большим числомкомпьютеров, технические требования параллельного и высокопроизводительного доступак одному и тому же системному файлу (или файлам) и межпроцессорная связь междуузлами, и координация работы в параллельном режиме. Эти проблемы проще всегорешаются при обеспечении единого образа операционной системы для всего кластера.Однако реализовать подобную схему удается далеко не всегда и обычно она применяетсялишь для не слишком больших систем.Многопоточные системы используются для обеспечения единого интерфейса к рядуресурсов, которые могут со временем произвольно наращиваться (или сокращаться).Типичным примером может служить группа web-серверов.В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker) создали 16-узловой кластер изпроцессоров Intel DX4, соединенных сетью 10 Мбит/с Ethernet с дублированием каналов.Они назвали его "Beowulf" по названию старинной эпической поэмы.
Кластер возник вцентре NASA Goddard Space Flight Center для поддержки необходимыми вычислительнымиресурсами проекта Earth and Space Sciences. Проектно-конструкторские работы быстропревратились в то, что известно сейчас как проект Beowulf. Проект стал основой общегоподхода к построению параллельных кластерных компьютеров, он описываетмногопроцессорную архитектуру, которая может с успехом использоваться дляпараллельных вычислений. Beowulf-кластер, как правило, является системой, состоящей изодного серверного узла (который обычно называется головным), а также одного илинескольких подчиненных (вычислительных) узлов, соединенных посредством стандартнойкомпьютерной сети. Система строится с использованием стандартных аппаратныхкомпонентов, таких как ПК, запускаемые под Linux, стандартные сетевые адаптеры(например, Ethernet) и коммутаторы. Нет особого программного пакета, называемого"Beowulf".
Вместо этого имеется несколько кусков программного обеспечения, которыемногие пользователи нашли пригодными для построения кластеров Beowulf. Beowulfиспользует такие программные продукты как операционная система Linux, системыпередачи сообщений PVM, MPI, системы управления очередями заданий и другиестандартные продукты. Серверный узел контролирует весь кластер и обслуживает файлы,направляемые к клиентским узлам.Архитектура кластерной системы (способ соединения процессоров друг с другом) вбольшей степени определяет ее производительность, чем тип используемых в нейпроцессоров.
Критическим параметром, влияющим на величину производительности такойсистемы, является расстояние между процессорами. Так, соединив вместе 10 персональныхкомпьютеров, мы получим систему для проведения высокопроизводительных вычислений.Проблема, однако, будет состоять в поиске наиболее эффективного способа соединениястандартных средств друг с другом, поскольку при увеличении производительностикаждого процессора в 10 раз производительность системы в целом в 10 раз не увеличится.Симметричные мультипроцессорные системы.Ключевым понятием многопроцессорных архитектур является узел - вычислительнаясистема, состоящая из одного или нескольких процессоров, имеющая оперативную памятьи систему ввода-вывода.
Узел характеризуется тем, что на нем работает единственная копияоперационной системы (ОС).73Симметричный многопроцессорный (SMP) узел содержит два или более одинаковыхпроцессора, используемых равноправно. Все процессоры имеют одинаковый доступ квычислительным ресурсам узла. Поскольку процессоры одновременно работают сданными, хранящимися в единой памяти узла, в SMP-архитектурах обязательно долженбыть механизм, поддержки когерентности данных. Когерентность данных означает, что влюбой момент времени для каждого элемента данных во всей памяти узла существуеттолько одно его значение несмотря на то, что одновременно могут существовать несколькокопий элемента данных, расположенных в разных видах памяти и обрабатываемых разнымипроцессорами.
Механизм когерентности должен следить за тем, чтобы операции с одним итем же элементом данных выполнялись на разных процессорах последовательно, удаляя, вчастности, устаревшие копии. В современных SMP-архитектурах когерентностьреализуется аппаратными средствами.Механизм когерентности является критичным для эффективной параллельной работы узлаSMP и должен иметь малое время задержки. До сегодняшнего дня самые крупные SMPсистемы содержали максимум 32 процессора на узел, что объяснялось требованием малыхзадержек когерентных связей, приводящим к архитектуре с одной объединительной платой,а это физически ограничивает возможное число подсоединенных процессоров и платпамяти.
Поэтому для дальнейшего увеличения числа процессоров в узле приходится вместоаппаратно реализованной техники когерентности применять более медленнуюпрограммную реализацию, что очень существенно сказывается на программируемостисистем и их производительности.SMP-узлы очень удобны для разработчиков приложений: операционная система почтиавтоматически масштабирует приложения, давая им возможность использоватьнаращиваемые ресурсы. Само приложение не должно меняться при добавлениипроцессоров и не обязано следить за тем, на каких ЦПУ оно работает. Временная задержкадоступа от любого ЦПУ до всех частей памяти и системы ввода-вывода одна и та же.Разработчик оперирует с однородным адресным пространством.
Все это приводит к тому,что SMP-архитектуры разных производителей выглядят в основном одинаково: упрощаетсяпереносимость программного обеспечения между SMP-системами. Переносимостьпрограмм - одно из основных достоинств SMP-платформ.Типичные SMP-архитектуры в качестве аппаратной реализации механизма поддержкикогерентности используют шину слежения (snoopy bus). Каждый процессор имеет свойсобственный локальный кэш, где он хранит копию небольшой части основной памяти,доступ к которой наиболее вероятен. Для того чтобы все кэши оставались когерентными,каждый процессор "подглядывает" за шиной, осуществляя поиск тех операций считыванияи записи между другими процессорами и основной памятью, которые влияют насодержимое их собственных кэшей. Если процессор "В" запрашивает ту часть памяти,которая обрабатывается процессором "А", то процессор "А" перехватывает этот запрос ипомещает свои значения области памяти на шину, где "В" их считывает.
Когда процессор"А" записывает измененное значение обратно из своего кэша в память, то все другиепроцессоры видят, как эта запись проходит по шине и удаляют устаревшие значения изсвоих кэшей.Существует несколько вариантов SMP-узла с одной и несколькими системными шинами,однако последний вариант приводит к усложнению архитектуры и повышению еестоимости. Одним из примеров может служить структура, реализованная компанией NCR, две шины и общая разделяемая ими память. Когерентность в такой структуре реализуетсяпутем хранения записей о состоянии и местонахождении каждого блока данных из74оперативной памяти.
Такой тип работы с кэш-памятью называется кэшированием на основекаталога и обладает тем достоинством, что удваивает пропускную способность шины.Недостатками такого подхода являются необходимость более сложных аппаратных средстви дополнительные задержки при пересылке данных между памятью и обеими шинами.В архитектуре Cray SuperServer 6400 SMP используются четыре шины. Все ЦПУподсоединяются к каждой из четырех шин и реализуют протокол следящей шины дляподдержки когерентности. Каждое ЦПУ отслеживает только те операции, которые влияютна содержимое своего кэша. Этот подход отличается от протоколов кэширования на основекаталога, так как здесь каталога нет.
В системе Cray 6400 пропускная способность шиныпотенциально увеличивается в 4 раза, однако очевидным недостатком является то, что накаждом ЦПУ устанавливается четыре экземпляра аппаратных средств поддержкикогерентности.Новая система Sun Ultra Enterprise 6000 для подсоединения всех ЦПУ, памяти и системввода-вывода использует коммутатор, который заменяет традиционную объединительнуюплату, но по существу выполняет ту же функцию.
Соответственно, сохраняются те женедостатки, поскольку весь трафик между памятью, ЦПУ и системой ввода-вывода долженпроходить через коммутатор. Система имеет только 16 слотов для плат ЦПУ/память иввода-вывода. Хотя такой новый коммутатор несколько увеличивает пропускнуюспособность шины, проблема "большой шины" остается: требование малых задержекограничивает в этих архитектурах число присоединенных ЦПУ, а увеличение скорости вшинах или коммутаторах не соответствует росту производительности ЦПУ.Матричные мультипроцессорные системы.Если не считать машины Унгера (1958г.), которая была узкоспециализированной ипредназначалась только для решения задач распознавания образов, то, по-видимому, первойматричной системой следует считать систему SOLOMON. Система содержит 1024 ПЭ,соединенных в виде матрицы 32Х32.