WebRazrab

WebRazrab

Ваш помощник в обучении

Array

leafleafleafDocy banner shape 01Docy banner shape 02

Архитектурные особенности многопроцессорных и многомашинных параллельных вычислительных систем

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

Вычислительная система (ВС) – это взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для решения определённых классов задач.

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

Параллельная обработка может выполняться на нескольких уровнях:

  1. Уровень заданий. Несколько независимых заданий одновременно выполняются на разных процессорах, практически не взаимодействуя друг с другом. Этот уровень реализуется в ВС со множеством процессоров в многозадачном режиме.
  2. Уровень программ. Части одной программы выполняются на множестве процессоров, что достигается в параллельных ВС.
  3. Уровень команд. Выполнение команды разделяется на фазы, а фазы нескольких последовательных команд могут быть перекрыты за счёт конвейеризации. Этот уровень достижим в ВС с одним процессором.
  4. Уровень битов. Если биты слова обрабатываются одновременно, то говорят о бит-параллельной операции, что достижимо в обычных и суперскалярных процессорах.

Варианты параллельной обработки, а также конвейерные и суперскалярнные процессоры были рассмотрены ранее.

К понятию уровня параллелизма тесно примыкает понятие гранулярности. Гранулярность – это мера отношения объёма вычислений, выполненных в параллельной задаче, к объёму коммуникаций (для обмена сообщениями). В зависимости от степени гранулярности выделяют крупнозернистый, среднезернистый и мелкозернистый параллелизм.

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

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

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

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

Можно выделить следующие преимущества параллельных архитектур:

  1. Применение мультипроцессорных архитектур – это единственный способ построения высокопроизводительных ВС. Производительность является важнейшим показателем ВС. Построив даже самый процессор для данного уровня развития вычислительной техники, можно ещё больше увеличить производительность, объединив в единую систему несколько процессоров.
  2. Мультипроцессорная система является масштабируемой, т.е. модульная организация таких систем позволяет увеличивать производительность за счёт наращивания модулей и (или) совершенствования взаимосвязей между ними.
  3. Мультипроцессорная система обладает большей отказоустойчивостью за счёт использования структурной избыточности. Например, при выходе какого-либо процессора из строя ВС может продолжать работу, перераспределив вычислительную работу между оставшимися процессорами.

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

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

В истории развития ВС, начиная с 70-х гг. 20 в., отмечались и рост и снижение интереса к параллельным архитектурам. С конца 90-х г. 20 в. и начала 21 в., в связи с успешными реализациями параллельных систем, параллельные архитектуры являются перспективным направлением развития ВС.

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

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

Существует большое количество признаков, по которым классифицируют вычислительные системы.

По назначению вычислительные системы делят на:

  • универсальные;
  • специализированные.

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

По типу построения вычислительные системы разделяются на:

  • многомашинные;
  • многопроцессорные.

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

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

Информационное взаимодействие компьютеров в многомашинной ВС может быть организовано на уровне:

  • процессоров;
  • оперативной памяти;
  • каналов связи.

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

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

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

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

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

Однако МПС имеют и существенные недостатки. Они, в первую очередь, связаны с использованием ресурсов общей оперативной памяти. При большом количестве объединяемых процессоров возможно возникновение конфликтных ситуаций, в которых несколько процессоров обращаются с операциями типа «чтение» и «запись» к одним и тем же ячейкам памяти.

Помимо процессоров к ОП подключаются все процессоры ввода- вывода, средства измерения времени и т.д. Поэтому вторым серьезным недостатком МПС является проблема коммутации и доступа абонентов к ОП. Процедуры взаимодействия очень сильно усложняют структуру ОС МПС. Опыт построения подобных систем показал, что они эффективны при небольшом числе объединяемых процессоров (от 2 до 10). Схема взаимодействия процессоров в ВС показана на схеме рис. 2. Типичным примером массовых многомашинных ВС могут служить компьютерные сети, примером многопроцессорных ВС — суперкомпьютеры.

По типу ЭВМ или процессоров, используемых для построения ВС, различают:

  • однородные системы;
  • неоднородные системы.

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

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

По методам управления элементами ВС различают:

  • централизованные;
  • децентрализованные;
  • со смешанным управлением.

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

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

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

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

По степени территориальной разобщенности вычислительных модулей ВС делятся на системы:

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

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

На рис. 1. представлена принципиальная схема классификации вычислительных систем.

Рис. 1. Принципиальная схема классификации вычислительных систем

Суперкомпьютеры и особенности их архитектуры.

К суперкомпьютерам относятся мощные многопроцессорные вычислительные машины с быстродействием сотни миллионов — десятки миллиардов операций в секунду. Создать такие высокопроизводительные компьютеры на одном микропроцессоре (МП) не представляется возможным ввиду ограничения, обусловленного конечным значением скорости распространения электромагнитных волн (300 000 км/с), т.к. время распространения сигнала на расстояние несколько миллиметров (линейный размер стороны МП) при быстродействии 100 млрд операций/с становится соизмеримым со временем выполнения одной операции. Поэтому суперкомпьютеры создаются в виде высокопараллельных многопроцессорных вычислительных систем (МПВС).

Высокопараллельные МПВС имеют несколько разновидностей.

  1. Магистральные (конвейерные) МПВС, у которых процессор одновременно выполняет разные операции над последовательным потоком обрабатываемых данных. По принятой классификации такие МПВС относятся к системам с многократным потоком команд и однократным потоком данных (МКОД или MISD — Multiple Instruction Single Data).
  2. Векторные МПВС, у которых все процессоры одновременно выполняют одну команду над различными данными — однократный поток команд с многократным потоком данных (ОКМД или SIMD — Single Instruction Multiple Data).
  3. Матричные МПВС, у которых микропроцессор одновременно выполняет разные операции над последовательными потоками обрабатываемых данных —многократный поток команд с многократным потоком данных (МКМД или MIMD — Multiple Instruction Multiple Data).

В суперкомпьютере используются все три варианта архитектуры МПВС:

  • структура MIMD в классическом ее варианте;
  • параллельно-конвейерная модификация, иначе MMISD, то есть многопроцессорная (Multiple) MISD-архитектура;
  • параллельно-векторная модификация, иначе MSIMD, то есть многопроцессорная SIMD-архитектура.

Первый суперкомпьютер был задуман в 1960 и создан в 1972 году (машина ILLIAC IV с производительностью 20 MFloPS), а начиная с 1974 года лидерство в разработке суперкомпьютеров захватила фирма Cray Research, выпустившая Cray 1 производительностью 160 MFloPS и объемом оперативной памяти 64 Мбайт.

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

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

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

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

Важной особенностью кластеров является обеспечение доступа любого сервера к любому блоку как оперативной, так и дисковой памяти. Эта проблема успешно решается, например, объединением систем SMP-архитектуры на базе автономных серверов для организации общего поля оперативной памяти и использованием дисковых систем RAID для памяти внешней (SMP — Shared Memory multiprocessing, технология мультипроцессирования с разделением памяти).

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

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

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

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

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