Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255), страница 26
Текст из файла (страница 26)
Он ее реализовал насистемах типа Origin.Организация когерентности многоуровневой иерархическойпамяти.Понятие когерентности кэшей описывает тот факт, что всецентральные процессоры получают одинаковые значения одних и тех жепеременных в любой момент времени. Действительно, поскольку кэшпамять принадлежит отдельному компьютеру, а не всеймногопроцессорной системе в целом, данные, попадающие в кэш одногокомпьютера, могут быть недоступны другому.
Чтобы избежать этого,следует провести синхронизацию информации, хранящейся в кэшпамяти процессоров.Для обеспечения подобной когерентности кэшей существуютнесколько возможностей:Использовать механизм отслеживания шинных запросов (snoopybus protocol), в котором кэши отслеживают переменные, передаваемые клюбому из центральных процессоров и, при необходимости,модифицируют собственные копии таких переменных. Выделятьспециальнуючастьпамяти,отвечающуюзаотслеживаниедостоверности всех используемых копий переменных.Наиболее известными системами архитектуры cc-NUMAявляются: HP 9000 V-class в SCA-конфигурациях, SGI Origin3000, SunHPC 15000, IBM/Sequent NUMA-Q 2000.
На настоящий моментмаксимальное число процессоров в cc-NUMA-системах можетпревышать 1000 (серия Origin3000). Обычно вся система работает подуправлением единой ОС, как в SMP. Возможны также варианты151динамического "подразделения" системы, когда отдельные "разделы"системы работают под управлением разных ОС. При работе NUMAсистемами, также как с SMP, используют так называемую парадигмупрограммирования с общей памятью (shared memory paradigm).PVP архитектураPVP (Parallel Vector Process) - параллельная архитектура свекторными процессорами.Основным признаком PVP-систем является наличие специальныхвекторно-конвейерных процессоров, в которых предусмотрены командыоднотипной обработки векторов независимых данных, эффективновыполняющиеся на конвейерных функциональных устройствах.
Какправило, несколько таких процессоров (1-16) работают одновременно собщей памятью (аналогично SMP) в рамках многопроцессорныхконфигураций. Несколько таких узлов могут быть объединены спомощью коммутатора (аналогично MPP). Поскольку передача данных ввекторном формате осуществляется намного быстрее, чем в скалярном(максимальная скорость может составлять 64 Гб/с, что на 2 порядкабыстрее, чем в скалярных машинах), то проблема взаимодействия междупотоками данных при распараллеливании становится несущественной.
Ито, что плохо распараллеливается на скалярных машинах, хорошораспараллеливается на векторных. Таким образом, системы PVPархитектуры могут являться машинами общего назначения (generalpurpose systems). Однако, поскольку векторные процессоры весьмадороги, эти машины не будут являться общедоступными.Наиболее популярны 3 машины PVP архитектуры:1. CRAY SV-2, SMP архитектура. Пиковая производительностьсистемы в стандартной конфигурации может составлять десяткитерафлопс.2. NEC SX-6, NUMA архитектура. Пиковая производительностьсистемы может достигать 8 Тфлопс, производительность 1 процессорасоставляет 8 Гфлопс. Система масштабируется до 128 узлов.3. Fujitsu-VPP5000 (vector parallel processing) ), MPP архитектура.Производительность 1 процессора составляет 9.6 Гфлопс, пиковаяпроизводительность системы может достигать 1249 Гфлопс,максимальная емкость памяти - 8 Тб.
Система масштабируется до 512узлов.Парадигма программирования на PVP системах предусматриваетвекторизацию циклов (для достижения разумной производительностиодного процессора) и их распараллеливание (для одновременнойзагрузки нескольких процессоров одним приложением).На практике рекомендуют следующие процедуры:152производить векторизацию вручную, цель - перевести задачу вматричную форму. При этом, в соответствии с длиной вектора, размерыматрицы должны быть кратны 128 или 256.За счет большой физической памяти (доли терабайта), даже плоховекторизуемые задачи на PVP системах решаются быстрее, на системахсо скалярными процессорами.Кластерная архитектураКластер представляет собой два или больше компьютеров (частоназываемых узлами), объединяемых при помощи сетевых технологий набазе шинной архитектуры или коммутатора и предстающих передпользователями в качестве единого информационно-вычислительногоресурса.
В качестве узлов кластера могут быть выбраны серверы,рабочие станции и даже обычные персональные компьютеры.Преимущество кластеризации для повышения работоспособностистановится очевидным в случае сбоя какого-либо узла: при этом другойузел кластера может взять на себя нагрузку неисправного узла, ипользователи не заметят прерывания в доступе. Возможностимасштабируемости кластеров позволяют многократно увеличиватьпроизводительность приложений для большего числа пользователей.технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектурыили коммутатора.
Такие суперкомпьютерные системы являются самымидешевыми, поскольку собираются на базе стандартных комплектующихэлементов ("off the shelf"), процессоров, коммутаторов, дисков ивнешних устройств.Кластеризация может быть осуществлена на разных уровняхкомпьютернойсистемы,включаяаппаратноеобеспечение,операционные системы, программы-утилиты, системы управления иприложения.
Чем больше уровней системы объединены кластернойтехнологией, тем выше надежность, масштабируемость и управляемостькластера.Типы кластеровУсловное деление на классы предложено Язеком Радаевским иДугласом Эдлайном:Класс I. Класс машин строится целиком из стандартных деталей,которые продают многие продавцы компьютерных компонент (низкиецены, простое обслуживание, аппаратные компоненты доступны изразличных источников).Класс II. Система имеет эксклюзивные или не широкораспространенные детали. Этим можно достичь очень хорошейпроизводительности, но при более высокой стоимости.153Как уже указывалось выше, кластеры могут существовать вразличных конфигурациях.
Наиболее употребляемыми типамикластеров являются:— Системы высокой надежности.— Системы для высокопроизводительных вычислений.— Многопоточные системы.Отметим, что границы между этими типами кластеров донекоторой степени размыты, и часто существующий кластер можетиметь такие свойства или функции, которые выходят за рамкиперечисленных типов.
Более того, при конфигурировании большогокластера, используемого как система общего назначения, приходитсявыделять блоки, выполняющие все перечисленные функции.Кластерыдлявысокопроизводительныхвычисленийпредназначены для параллельных расчётов. Эти кластеры обычнособраны из большого числа компьютеров. Разработка таких кластеровявляется сложным процессом, требующим на каждом шаге аккуратныхсогласований таких вопросов как инсталляция, эксплуатация иодновременное управление большим числом компьютеров, техническиетребования параллельного и высокопроизводительного доступа кодному и тому же системному файлу (или файлам) и межпроцессорнаясвязь между узлами и координация работы в параллельном режиме.
Этипроблемы проще всего решаются при обеспечении единого образаоперационной системы для всего кластера. Однако реализоватьподобную схему удаётся далеко не всегда и обычно она обычноприменяется лишь для не слишком больших систем.Многопоточные системы используются для обеспечения единогоинтерфейса к ряду ресурсов, которые могут со временем произвольнонаращиваться (или сокращаться) в размере. Наиболее общий примерэтого представляет собой группа Веб-серверов.В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker)создали 16-и узловой кластер из процессоров Intel DX4, соединенныхсетью 10Мбит/с Ethernet с дублированием каналов.
Они назвали его«Beowulf» по названию старинной эпической поэмы. Кластер возник вцентре NASA Goddard Space Flight Center для поддержки необходимымивычислительными ресурсами проекта Earth and Space Sciences.Проектно-конструкторские работы над кластером быстро превратилисьв то, что известно сейчас под названием проект Beowulf. Проект сталосновой общего подхода к построению параллельных кластерныхкомпьютеров и описывает многопроцессорную архитектуру, котораяможет с успехом использоваться для параллельных вычислений.Beowulf-кластер, как правило, является системой, состоящей из одногосерверного узла (который обычно называется головным узлом), а такжеодного или нескольких подчинённых узлов (вычислительных узлов),154соединённых посредством стандартной компьютерной сети.
Системастроится с использованием стандартных аппаратных компонент, такихкак ПК, запускаемых под Linux, стандартных сетевых адаптеров(например, Ethernet) и коммутаторов. Нет особого программного пакета,называемого «Beowulf». Вместо этого имеется несколько кусковпрограммного обеспечения, которые многие пользователи нашлипригодными для построения кластеров Beowulf. Beowulf используеттакие программные продукты как операционную систему Linux,системы передачи сообщений PVM, MPI, системы управленияочередями заданий и другие стандартные продукты.
Серверный узелконтролирует весь кластер и обслуживает файлы, направляемые кклиентским узлам.Проблемы выполнения связи сети процессоров в кластерной системеАрхитектура кластерной системы (способ соединения процессоровдруг с другом) в большей степени определяет ее производительность,чем тип используемых в ней процессоров. Критическим параметром,влияющим на величину производительности такой системы, являетсярасстояние между процессорами. Так, соединив вместе 10 персональныхкомпьютеров,мыполучимсистемудляпроведениявысокопроизводительных вычислений, проблема, однако, будетсостоять в нахождении наиболее эффективного способа соединениястандартных средств друг с другом, поскольку при увеличениипроизводительности каждого процессора в 10 раз производительностьсистемы в целом в 10 раз не увеличится.Рассмотрим для примера задачу построения симметричной 16-типроцессорной системы, в которой все процессоры были быравноправны.
Наиболее естественным представляется соединение в видеплоской решетки, где внешние концы используются для подсоединениявнешних устройств.Схема соединения процессоров в виде плоской решетки155При таком типе соединения максимальное расстояние междупроцессорами окажется равным 6 (количество связей междупроцессорами, отделяющих самый ближний процессор от самогодальнего). Теория же показывает, что если в системе максимальноерасстояние между процессорами больше 4, то такая система не можетработать эффективно. Поэтому, при соединении 16 процессоров друг сдругом плоская схема является не эффективной.