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

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

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

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

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

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

Типы многопроцессорных ВС

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

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

 

Параллельные вычислительные системы делятся на два больших класса: SIMD и MIMD. SIMD (single instruction - multiple data) - "один поток команд - много потоков данных" - команды выдаются одним управляющим процессором, а выполняются одновременно на всех обрабатывающих процессорах над локальными данными этих процессоров.

MIMD (multiple instruction - multiple data) - "много потоков команд - много потоков данных" - совокупность компьютеров, работающих по своим программам и со своими исходными данными.

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

Существующие параллельные вычислительные средства класса MIMD образуют три подкласса:

· Симметричные мультипроцессоры (SMP),

· Кластеры

· Массово параллельные системы (МРР).

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

Использование SMP обеспечивает следующие возможности:

· Повышение производительности приложений путем производительных аппаратных средств;

· Создание приложений в привычных программных средах;

· Программирование на базе разделяемой памяти;

· Одинаковое время доступа ко всей памяти;

· Возможность пересылки сообщений с большой пропускной способностью;

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

Однако степень масштабируемости SMP систем ограничена в пределах технической реализуемости одинакового для всех процессоров доступа в память со скоростью, характерной для однопроцессорных компьютеров. Как правило, количество процессоров в SMP не превышает 32. На данный момент SMP структура наиболее распространена в классе профессиональных рабочих станций на базе RISC процессоров.

Для построения систем с большим числом процессоров применяются кластерный или МРР подходы. Оба эти направления используют SMP как системообразующий вычислительный модуль (ВМ).

Кластерная система образуется из модулей, объединенных системой связи или разделяемыми устройствами внешней памяти, например дисковыми массивами. В настоящее время для образования кластерных систем используются либо специализированные фирменные средства, и другие сети, например, с протоколами TCP/IP (Transmission Control Protocol / Internet Protocol), либо дисковые массивы с высокоскоростными широкими двойными (Wide/Fast) и квадро PCI SCSI контроллерами.

Размер кластера варьируется от нескольких модулей до нескольких десятков модулей.

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

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

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

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

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

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

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

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

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