Что называется кластером многомашинная система
Многомашинные комплексы, многопроцессорные системы и кластерные структуры.
Многомашинные комплексы.
Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко.
Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Структура такой машины представлена на рис. 1.26. схемой двухмашинного комплекса на основе моделей IBM-360.
Рис. 1.26. Структура многомашинного комплекса
Каждая модель комплекса содержит процессор, модули памяти, систему ввода/вывода (каналы в/в). Обмен данными производится через систему устройств ввода/вывода. Для связи между моделями комплекса использовалось специальное устройство адаптер «канал-канал». Это однобайтный регистр передаваемых данных и два контроллера со стороны интерфейса ввода-вывода соединяемых моделей комплекса.
Передача данных через канал-канал начинается по команде программы ввода-вывода со стороны одного из процессоров. Этой командой может быть команда «записать». Контроллер адаптера по этой команде посылает сигнал прерывания в процессор, смежной ЭВМ. В программе прерывания предусмотрена команда обращения к этому же адаптеру, но уже по чтению. Адаптер, получив задания от процессоров отвечает положительными квитанциями. Так организуется передача данных. Конец передачи данных определен счетчиками данных в командах канала.
По окончании передачи данных контроллеры адаптеров канал-канал посылают каналам байты состояния. Этим заканчивается выполнение команды каналов. Передача данных прекращается по окончанию всех команд программы ввода-вывода. Программа канала может завершиться штатно или по сбою. В любом случае контроллеры адаптеров канал-канал посылают процессорам сигналы прерывания для анализа условий окончания программы ввода-вывода.
Интерфейс прямого управления предназначен для обмена процессоров управляющими сигналами.
Для увеличения производительности и более эффективного использования большого парка периферийных устройств использовались и многопроцессорные системы, например – двухпроцессорные.
Многомашинные комплексы в настоящее время определяются как асимметричные, слабосвязанные многопроцессорные системы, системы с неоднородным доступом к памяти (NUMA – Non-Uniform Memory Access).
Многопроцессорные системы.
В настоящее время многопроцессорные системы определяются как симметричные мультипроцессорные системы (SMP системы – Summetrie Multiprocessor). Все процессоры системы работают в едином виртуальном и физическом пространстве оперативной памяти. Любой из процессоров может обслуживать внешние прерывания. Это сильно связанные системы. Схема двухпроцессорной системы моделей IBM-360 представлена на рис. 1.27.
Рис. 1.27. Структура многопроцессорной системы
Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.
Кластерные системы.
Это наиболее перспективные структуры эксплуатации современных ЭВМ. Кластер – это совокупность объединенных компьютеров (узлов), управляемых и используемых, как единое целое.
Один из первых архитекторов кластерной технологии Грегори Пфистер дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределенной системы, которая:
1. состоит из нескольких связанных между собой компьютеров;
2. используется как единый, унифицированный компьютерный ресурс».
Каждый узел кластера может быть однопроцессорным или многопроцессорным. В классической схеме при работе с приложениями все узлы разделяют внешнюю память на массиве жестких дисков. Кроме этого, в узлах кластера собственные жесткие диски используются индивидуально для реализации внутренних нужд узла.
Территориально узлы кластера могут располагаться не компактно, а быть рассредоточены по разным этажам и зданиям одной организации. Для связи узлов кластера в единый вычислительный ресурс используются высокоскоростные линии связи.
Основными целями кластера являются обеспечение:
· высокой доступности и отказоустойчивости,
Высокая доступность и отказоустойчивость обеспечивается избыточными процессорами, гарантирующими доступность при отказе отдельных серверов.
В кластерах предусматриваются системы контроля и возможность быстрой конфигурации системы с заменой неисправных узлов.
Распределение нагрузкистроится на обработке отдельных запросов и выделении для них свободных процессоров. Для этого один или несколько узлов выделяется для приема запросов, которые динамически перенаправляют эти запросы на обработку в остальные узлы.
Повышение производительности производится за счет разбиения задач на параллельно выполняемые потоки на разных узлах. Для этого используются специальные программные системы.
Начало разработки кластеров относится к 1970-м годам. Основой реализации и дальнейшего развития кластеров являются совершенствование способов быстрой связи между узлами (реально используются протоколы TCP/IP) и стандарты методов распараллеливания программ.
Периодом становления кластеров считается годы с 1970г. по 1984г., когда корпорация DEC построила свой VAX-кластер на основе ОС VAX/VMS.
В кластерах этой фирмы используются одни из самых современных процессоров, таких как Alpha и Itanium.
Grid системы. Название системы Grid трактуется как решетка (сеть). Имеется в виду объединение вычислительных кластеров разных фирм в сеть, с использованием интернет-технологий. Первоначально целью такого объединения ставилась задача повышения эффективности использования кластеров за счет их «сдачи в наем» в вечернее и ночное время фирмам, расположенных в других временных поясах (т.е. предоставлять вычислительные услуги кластерных систем другим фирмам, для сокращения простоев оборудования в ночное и вечернее время). В качестве средств связи уже изначально предполагалось использование технологии HTML, что в корне меняет дело.
С внедрением Grid систем Интернет приобретает новое качество услуг, а именно вычислительные услуги большой производительности, что в корне меняет технологию и средства расчетов.
Вопросы для самопроверки:
1. Многомашинные комплексы.
2. Многопроцессорные вычислительные системы.
3. Определение кластера.
4. Основные цели использования кластеров,
5. Стратегия распределения нагрузки в кластере.
6. Определение Grid-системы
Эволюция режимов работы ЭВМ
На формировании структур ЭВМ, кроме особенностей развития элементной базы и смены областей использования, значительный след оставила эволюция их режимов работы. Основными режимами были следующие:
Многомашинные системы (кластеры)
Работа любой многомашинной системы определяется двумя главными компонентами: высокоскоростным механизмом связи процессоров и системным программным обеспечением, которое предоставляет пользователям и приложениям прозрачный доступ к ресурсам всех компьютеров, входящих в комплекс. В состав средств связи входят программные модули, которые занимаются распределением вычислительной нагрузки, синхронизацией вычислений и реконфигурацией системы. Если происходит отказ одного из компьютеров комплекса, его задачи могут быть автоматически переназначены и выполнены на другом компьютере. Если в состав многомашинной системы входят несколько контроллеров внешних устройств, то в случае отказа одного из них, другие контроллеры автоматически подхватывают его работу. Таким образом, достигается высокая отказоустойчивость комплекса в целом.
Помимо повышения отказоустойчивости, многомашинные системы позволяют достичь высокой производительности за счет организации параллельных вычислений. По сравнению с мультипроцессорными системами возможности параллельной обработки в многомашинных системах ограничены: эффективность распараллеливания резко снижается, если параллельно выполняемые задачи тесно связаны между собой по данным. Это объясняется тем, что связь между компьютерами многомашинной системы менее тесная, чем между процессорами в мультипроцессорной системе, так как основной обмен данными осуществляется через общие многовходовые периферийные устройства. Говорят, что в отличие от мультипроцессоров, где используются сильные программные и аппаратные связи, в многомашинных системах аппаратные и программные связи между обрабатывающими устройствами являются более слабыми. Территориальная распределенность в многомашинных комплексах не обеспечивается, так как расстояния между компьютерами определяются длиной связи между процессорным блоком и дисковой подсистемой.
Вычислительные сети
Распределенные программы
Рис. 1.5. Взаимодействие частей распределенного приложения
Следует подчеркнуть, что не всякое приложение, выполняемое в сети, является сетевым. Существует большое количество популярных приложений, которые не являются распределенными и целиком выполняются на одном компьютере сети. Тем не менее и такие приложения могут использовать преимущества сети за счет встроенных в операционную систему сетевых служб. Значительная часть истории локальных сетей связана как раз с использованием таких нераспределенных приложений. Рассмотрим, например, как происходила работа пользователя с известной в свое время СУБД dBase. Обычно файлы базы данных, с которыми работали все пользователи сети, располагались на файловом сервере. Сама же СУБД хранилась на каждом клиентском компьютере в виде единого программного модуля.
Программа dBase была рассчитана на обработку только локальных данных, то есть данных, расположенных на том же компьютере, что и сама программа. Пользователь запускал dBase на своем компьютере, и она искала данные на локальном диске, совершенно не принимая во внимание существование сети. Чтобы обрабатывать с помощью dBase данные на удаленном компьютере, пользователь обращался к услугам файловой службы, которая доставляла данные с сервера на клиентский компьютер и создавала для СУБД эффект их локального хранения.
Выводы
· Вычислительные сети явились результатом эволюции компьютерных технологий.
· Использование вычислительных сетей дает предприятию следующие возможности:
o разделение дорогостоящих ресурсов;
o совершенствование коммуникаций;
o улучшение доступа к информации;
o быстрое и качественное принятие решений;
o свобода в территориальном размещении компьютеров.
Старший преподаватель кафедры №24, подполковник С. Баричев
Военная академия Ракетных войск стратегического назначения
имени Петра Великого
ЛЕКЦИЯ №2 «ОСНОВНЫЕ КОМПОНЕНТЫ КОМПЬЮТЕРНОЙ СЕТИ»
ПО УЧЕБНОЙ ДИСЦИПЛИНЕ: «ИНФОРМАЦИОННЫЕ СЕТИ И ТЕЛЕКОММУНИКАЦИИ»
Автор(ы): Баричев С.Г., КТН, старший преподаватель;
Рассмотрено и одобрено на заседании кафедры (ПМК кафедры)
Многопроцессорные и многомашинные вычислительные системы
Кластер представляет собой систему из нескольких компьютеров (в большинстве случаев серийно выпускаемых), имеющих общий разделяемый ресурс для хранения совместно обрабатываемых данных (обычно набор дисков или дисковых массивов) и объединенных высокоскоростной магистралью (рис. 13.3).
В кластерной системе некоторое распределенное приложение параллельно на нескольких узлах обрабатывает общий набор данных, как правило, таким образом, чтобы у пользователя возникла иллюзия работы на одной машине.
В такой системе адресное пространство состоит из отдельных адресных пространств, которые логически не связаны между собой и доступ к которым не может быть осуществлен аппаратно другим процессором.
При этом для обмена данными используется механизм передачи сообщений между процессорами. Поэтому эти машины часто называют машинами с передачей сообщений. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами.
Основными недостатками систем данного типа являются следующие:
Подведем некоторые итоги, касающиеся областей применимости систем параллельной обработки данных различных типов.
Приведенная классификация систем параллельной обработки данных достаточно условна. Разработчики вычислительных систем не проектируют машину какого-то специального класса, а стараются создать более производительную архитектуру. Кроме этого, сам пользователь может с использованием стандартных компонентов спроектировать комплекс, архитектурно и функционально наиболее подходящий для решения конкретной задачи.
Мультипроцессорные и многомашинные системы
Материал из ПИЭ.Wiki
Содержание
Мультипроцессорные и многомашинные вычислительные системы
В настоящее время тенденция в развитии микропроцессоров и систем, построенных на их основе, направлена на все большее повышение их производительности. Вычислительные возможности любой системы достигают своей наивысшей производительности благодаря двум факторам: использованию высокоскоростных элементов и параллельному выполнению большого числа операций.
Существует несколько вариантов классификации систем параллельной обработки данных. Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных выделяются четыре класса архитектур:
SISD, MISD, SIMD, MIMD.
В этом случае выделяют следующие 4 класса систем:
системы с симметричной мультипроцессорной обработкой (symmeTRic multIProcessINg), или SMP-системы;
системы, построенные по технологии неоднородного доступа к памяти (non-un IForm memory access), или NUMA-системы;
системы вычислений с массовым параллелизмом (massively parallel processor), или MPP-системы.
Самым высоким уровнем интеграции ресурсов обладает система с симметричной мультипроцессорной обработкой, или SMP-система (рис. 1).
В этой архитектуре все процессоры имеют равноправный доступ ко всему пространству оперативной памяти и ввода/вывода. Поэтому SMP-архитектура называется симметричной. Ее интерфейсы доступа к пространству ввода/вывода и ОП, система управления кэш-памятью, системное ПО и т. п. построены таким образом, чтобы обеспечить согласованный доступ к разделяемым ресурсам. Соответствующие механизмы блокировки заложены и в шинном интерфейсе, и в компонентах операционной системы, и при построении кэша.
Рис. 1. Система с симметричной мультипроцессорной обработкой
С точки зрения прикладной задачи, SMP-система представляет собой единый вычислительный комплекс с вычислительными ресурсами, пропорциональными количеству процессоров. Распараллеливание вычислений обеспечивается операционной системой, установленной на одном из процессоров. Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается WINdows NT).
ОС автоматически в процессе работы распределяет процессы по процессорным ядрам, оптимизируя использование ресурсов. Ядра задействуются равномерно, и прикладные программы могут выполняться параллельно на всем множестве ядер. При этом достигается максимальное быстродействие системы. Важно, что для синхронизации приложений вместо сложных механизмов и протоколов межпроцессорной коммуникации применяются стандартные функции ОС. Таким образом, проще реализовать проекты с распараллеливанием программных потоков. Общая для совокупности ядер ОС позволяет с помощью служебных инструментов собирать статистику, единую для всей архитектуры. Соответственно, можно облегчить отладку и оптимизацию приложений на этапе разработки или масштабирования для других форм многопроцессорной обработки.
В общем случае приложение, написанное для однопроцессорной системы, не требует модификации при его переносе в мультипроцессорную среду. Однако для оптимальной работы программы или частей ОС они переписываются специально для работы в мультипроцессорной среде.
Сравнительно небольшое количество процессоров в таких машинах позволяет иметь одну централизованную общую память и объединить процессоры и память с помощью одной шины.
Сдерживающим фактором в подобных системах является пропускная способность магистрали, что приводит к их плохой масштабируемости. Причиной этого является то, что в каждый момент времени шина способна обрабатывать только одну транзакцию, вследствие чего возникают проблемы разрешения конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям общей физической памяти. Вычислительные элементы начинают мешать друг другу. Когда произойдет такой конфликт, зависит от скорости связи и от количества вычислительных элементов. Кроме того, системная шина имеет ограниченное число слотов. Все это очевидно препятствует увеличению производительности при увеличении числа процессоров. В реальных системах можно задействовать не более 32 процессоров.
В современных микропроцессорах поддержка построения мультипроцессорной системы закладывается на уровне аппаратной реализации МП, что делает многопроцессорные системы сравнительно недорогими.
Сегодня SMP широко применяют в многопроцессорных суперкомпьютерах и серверных приложениях. Однако если необходимо детерминированное исполнение программ в реальном масштабе времени, например, при визуализации мультимедийных данных, возможности сугубосимметричной обработки весьма ограничены. Может возникнуть ситуация, когда приложения, выполняемые на различных ядрах, обращаются к одному ресурсу ОС. В этом случае доступ получит только одно из ядер.
Остальные будут простаивать до высвобождения критической области.
Естественно, при этом резко снижается производительность приложений реального времени.
Рис. 2. Система, построенная по технологии неоднородного до ступа к памяти
При такой организации память каждого узла системы имеет свою адресацию в адресном пространстве всей системы. Логика доступа к ресурсам определяет, к памяти какого узла относится выработанный процессором адрес. Если он не принадлежит памяти данного узла, организуется обращение к другому узлу согласно заложенной в логике доступа карте адресов. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной.
Обычно вся система работает под управлением единой ОС, как в SMP. Возможны также варианты динамического разделения системы, когда отдельные разделы системы работают под управлением разных ОС.
Довольно большое время доступа к оперативной памяти соседних узлов по сравнению с доступом к ОП своего узла в NUMA-системах на настоящий момент делает такое использование не вполне оптимальным.
Следующим уровнем в иерархии параллельных систем являются комплексы, также состоящие из отдельных машин, но лишь частично разделяющие некоторые ресурсы. Речь идет о кластерах.
Кластеры
Кластер представляет собой систему из нескольких компьютеров (в большинстве случаев серийно выпускаемых), имеющих общий разделяемый ресурс для хранения совместно обрабатываемых данных (обычно набор дисков или дисковых массивов) и объединенных высокоскоростной магистралью (рис. 3).
В кластерной системе некоторое распределенное приложение параллельно на нескольких узлах обрабатывает общий набор данных, как правило, таким образом, чтобы у пользователя возникла иллюзия работы на одной машине.
Рис. 3. Структура кластера
Рис. 4. Структура MPP-системы
В такой системе адресное пространство состоит из отдельных адресных пространств, которые логически не связаны между собой и доступ к которым не может быть осуществлен аппаратно другим процессором.
При этом для обмена данными используется механизм передачи сообщений между процессорами. Поэтому эти машины часто называют машинами с передачей сообщений. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами.
На машинах MPP-архитектуры используются два варианта работы операционной системы. В одном из них полноценная операционная система работает только на управляющей машине (front-end); на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная, как правило, UNIX-подобная ОС, устанавливаемая отдельно.
Она требует специального инструментария и особого системного программного обеспечения для работы параллельных приложений, которые ориентированы на функционирование параллельных процессов, распределенных по узлам MPP-системы, с обменом сообщениями между ними.
Повышение производительности машин с массовым параллелизмом путем увеличения в них числа процессоров имеет определенные ограничения. Чем большее число процессоров входит в состав MPP-системы, тем длиннее каналы передачи управления и данных, а значит, и тем меньше тактовая частота. Происшедшее возрастание нормы массивности для больших машин до 512 и даже 64К процессоров обусловлено не ростом размеров машины, а увеличением степени интеграции схем, позволившей за последние годы резко повысить плотность размещения элементов в устройствах. Топология сети межпроцессорного обмена в такого рода системах может быть различной.
Главным преимуществом MPP-систем является их хорошая масштабируемость: в отличие от SMP-систем, здесь каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодня устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров.
Основными недостатками систем данного типа являются следующие: отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами; требуется специальная техника программирования для реализации обмена сообщениями между процессорами; каждый процессор может использовать только ограниченный объем локального банка памяти; вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально задействовать системные ресурсы, следствием чего является высокая цена программного обеспечения для MPP-систем с раздельной памятью.
Подведем некоторые итоги, касающиеся областей применимости систем параллельной обработки данных различных типов.
SMP-системы потенциально обладают достаточными возможностями для обеспечения необходимой для большинства применений производительности: вполне естественно увеличивать число процессоров, а не ставить рядом еще один компьютер. Добавление одного процессора гарантированно увеличивает производительность, а добавление, например, узла в кластер адекватного ускорения не даст. Более того, в некоторых случаях общая производительность системы может даже упасть, когда узлы кластера начинают активно конкурировать за доступ к общим ресурсам, и взаимные блокировки сводят на нет преимущества параллельной обработки.
Для современных систем помимо вполне традиционных требований по производительности, масштабируемости, цене дополнительные высокие требования предъявляются к надежности их работы. Именно по этим соображениям вычислительные комплексы на основе кластеров или MPP-машин завоевывают все большую популярность.
MPP-системы обладают рядом преимуществ, главным из которых является лучшая среди всех рассмотренных архитектур масштабируемость. Именно поэтому MPP-компьютеры обычно используются при больших ресурсоемких вычислениях. Конечно, они применяются и при построении больших баз данных, и в отказоустойчивых вычислительных комплексах. Но здесь их использование довольно ограничено. Это отчасти связано с тем, что они все-таки дороже кластеров и имеют достаточно большую начальную цену. Кластер же можно построить из относительно дешевых машин произвольной конфигурации.
Приведенная классификация систем параллельной обработки данных достаточно условна. Разработчики вычислительных систем не проектируют машину какого-то специального класса, а стараются создать более производительную архитектуру. Кроме этого, сам пользователь может с использованием стандартных компонентов спроектировать комплекс, архитектурно и функционально наиболее подходящий для решения конкретной задачи.
Транспьютеры
Для построения многопроцессорных систем могут быть использованы специально разработанные процессоры, называемые транспьютерами. Они были созданы в середине 1980-х годов ДpД
Транспьютер включает в себя средства для выполнения вычислений (ЦП, АЛУ с плавающей точкой, внутрикристальную память) и 4 канала для связи (линка) с другими транспьютерами и/или другими устройствами. Каждый линк представляет собой 2 однонаправленных последовательных канала передачи информации. Встроенный интерфейс позволяет подключать внешнюю память емкостью до 4 Гбайт (рис. 5).
Рис. 5. Структура транспьютера
Многопроцессорная система может создаваться из набора транспьютеров, которые функционируют независимо и взаимодействуют через последовательные каналы связи (рис. 6).
Рис. 6. Структуры многопроцессорных систем на базе транспью теров
При передаче данных в линк процесс должен исполнить команду вывода. Процесс, исполнивший такую команду, задерживается до тех пор, пока все данные не будут переданы. Аналогично, при приеме данных из линка процесс должен исполнить команду ввода. При исполнении такой команды процесс блокируется до тех пор, пока буфер не будет заполнен данными. Взаимодействие с внешним устройством через линк позволяет транспьютеру синхронизовать свою деятельность с этими устройствами без использования механизма прерываний.
Использование такого подхода позволило организовать виртуальные каналы связи между процессами, которые могли размещаться как на единственном транспьютере, так и на нескольких транспьютерах, и виртуальные линки между процессами. Любой транспьютер может одновременно образовывать любое число параллельных процессов. Он имеет специальный планировщик, который производит распределение процессорного времени между этими процессами. Тем самым появляется возможность, имея всего лишь один транспьютер, написать параллельную программу, которая полностью выполняется на нем. Задача разбивается на ряд процессов, и все эти процессы параллельно протекают внутри одного транспьютера, периодически останавливаясь для получения данных друг от друга. Систему можно расширить другими транспьютерами и перенести на них ряд процессов. При этом нужно просто переопределить таблицу связей процессов, указав, на каком транспьютере теперь выполняется тот или иной процесс. Сама же программа изменений не претерпевает, а вычислительная мощность системы, естественно, увеличивается.
На момент своего появления транспьютеры были самыми быстродействующими 32-разрядными микропроцессорами. В процессе своего недолго развития их характеристики достигли следующих значений: производительность: 200 MIPS, 25 MFLOPS (на 64-разрядном процессоре с плавающей точкой); емкость внутрикристальной памяти: 16 Кбайт; скорость обмена по линку: 100 Мбит/с.
Литература
1. Богданов А.В., Корхов В.В., Мареев В.В., Станкова Е.Н. Архитектуры и топологии многопроцессорных вычислительных систем, 2004
2. Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники, 2008