Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Osnova.doc
Скачиваний:
21
Добавлен:
18.09.2019
Размер:
963.58 Кб
Скачать

Практическое занятие 15

Изучение типов вычислительных систем

1 Цель работы

1.1 Изучить основные виды и главные отличия вычислительных систем

2 Пояснение к работе

2.1 Краткие теоретические сведения

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

2.1.1 Классификация вычислительных систем:

1 по назначению:

- универсальные – предназначены для решения широкого круга задач;

- специализированные – предназначены для решения определённого круга задач. Они, как правило, должны иметь аппаратные и программные средства, предназначенные специально для этой системы.

2 по типу:

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

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

3 по характеру устройств:

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

- неоднородные – содержат разнотипные ЭВМ (или процессоры).

4 по управлению:

- централизованные – все функции управления сосредоточены в одном элементе, в качестве которого используется одна из ЭВМ, называемая машиной-директором или центральным процессором;

- децентрализованные – в ВС каждый процессор или ЭВМ действуют автономно, решая свои задачи;

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

5 по числу потоков команд и данных:

- SISD – один поток команд, один поток данных (архитектура фон Неймана);

- SIMD – один поток команд, много потоков данных (массивно-параллельные и векторные процессоры);

- MISD – много потоков команд, один поток данных (конвейерная архитектура);

- MIMD – много потоков команд, много потоков данных (мультипроцессоры и мультикомпьютеры).

2.1.2 Архитектура SIMD (Single Instruction stream Multiple Data stream)

Лежит в основе ВС, управляемых одним потоком команд, обрабатывающим несколько потоков данных. К разновидностям таких систем относятся массивно-параллельные и векторные процессоры (компьютеры).

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

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

2.1.3 Архитектура MIMD (Multiple Instruction stream Multiple Data stream)

Эта архитектура лежит в основе мультипроцессоров и мультикомпьютеров.

Рисунок 15.1 – Классификация ВС архитектуры MIMD

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

Существует два способа построения общей памяти: использование единой (централизованной) общей памяти (рисунок 15.2 а) и использование физически распределенной памяти (рисунок 15.2 б).

Рисунок 15.2 – Способы построения общей памяти

Использование единой общей памяти обеспечивает однородный доступ к памяти (uniform memory access или UMA) и служит основой для построения векторных параллельных процессоров (parallel vector processor или PVP) и симметричных мультипроцессоров (symmetric multiprocessor или SMP).

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

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

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

Как правило, несколько таких процессоров (1-16) работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций.

Общий доступ к данным может быть обеспечен и при физически распределенной памяти (при этом длительность доступа уже не будет одинаковой для всех элементов памяти). Такой подход именуется неоднородным доступом к памяти (non-uniform memory access или NUMA). Среди систем с таким типом памяти выделяют:

- системы, в которых для представления данных используется только локальная кэш-память имеющихся процессоров (cache-only memory architecture или COMA);

- системы, в которых обеспечивается когерентность локальных кэшей разных процессоров (cache-coherent NUMA или CC-NUMA);

- системы, в которых обеспечивается общий доступ к локальной памяти разных процессоров без поддержки на аппаратном уровне когерентности кэша (non-cache coherent NUMA или NCC-NUMA);

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

Мультикомпьютеры (многопроцессорные системы с распределенной памятью) уже не обеспечивают общего доступа ко всей имеющейся в системах памяти (no-remote memory access или NORMA) (рисунок 15.3).

Рисунок 15.3 – Взаимодействие процессоров с памятью в мультикомпьютерах

При схожести подобной архитектуры с системами с распределенной общей памятью, мультикомпьютеры имеют принципиальное отличие: каждый процессор системы может использовать только свою локальную память, в то время как для доступа к данным, располагаемым на других процессорах, необходимо явно выполнить операции передачи сообщений. Данный подход применяется при построении двух важных типов многопроцессорных вычислительных систем – массивно-параллельных систем (massively parallel processor или MPP) и кластеров (clusters of workstation или COW).

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

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

Главным преимуществом систем с раздельной памятью является хорошая масштабируемость.

Недостатки архитектуры

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

- каждый процессор может использовать только ограниченный объем локального банка памяти;

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]