Скачиваний:
406
Добавлен:
22.01.2014
Размер:
3.77 Mб
Скачать

30.3. Многопроцессорные архитектуры

Многопроцессорные системы могут быть представлены двумя базовыми типами архитектуры в зависимости от параллелизма данных – MISD (Multiple Instruction Single Data - множество потоков команд – один поток данных) и MIMD- (MultipleInstructionMultipleData- множество потоков команд - множество потоков данных).

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

Такой результат вытекает из понятия "много потоков команд много потоков данных". Из всех рассмотренных архитектурных классов только MIMD-архитектура включает все уровни параллелизма от конвейера операций до независимых заданий и программ. Поэтому любая вычислительная система этого класса в частных приложениях может выступать как SISD- или SIMD-система. Например, если многопроцессорный комплекс выполняет одну-единственную программу без каких-либо признаков векторного параллелизма данных, то он в этом конкретном случае функционирует как обычный SISD-компьютер, и весь его потенциал остается невостребованным. Поэтому употребляя термин "MIMD", надо иметь в виду не только много процессоров, но и множество вычислительных процессов, одновременно выполняемых в системе.

Таким образом, под MIMD-архитектурой понимается многопроцессорная система. MIMD-системы классифицируются по различным признакам.

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

Рис.30.6.

Слабосвязанные процессы время от времени обмениваются небольшими блоками данных, т.е. не предъявляют серьезных требований к пропускной способности межпроцессорных связей. Теоретически наиболее удачным архитектурным решением, специализирующимся на обработке подобных процессов, являются системы с массовым параллелизмом (MPP Mass-Parallel Processing), системы, состоящие из десятков, сотен, тысяч процессорных узлов. Каждый такой узел содержит процессор и модуль памяти, в котором хранится процесс - совокупность команд, исходных и промежуточных данных вычислений, а также системные идентификаторы процесса. Узлы массово-параллельной системы объединяются коммуникационными сетями самой различной формы: от простейшей решетки до гиперкуба или трехмерного тора. В отличие от архитектуры фон Неймана, передача данных между узлами коммуникационной сети происходит по готовности данных процесса, а не под управлением некоторой программы. Поэтому такие системы еще называют: "системы с управлением потоком данных" (иногда просто "потоковые машины") и "системы с архитектурой, отличной от архитектуры фон Неймана". Создание массово-параллельных систем позволяет достичь гигантской производительности, но при этом требуется решить задачу программирования коммутаций процессов, которая пока слабо автоматизирована и является очень сложной процедурой, что не позволяет применять такие системы для коммерческих задач и большинства инженерных приложений.

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

С сильносвязанными процессами дело обстоит несколько проще. Во-первых, число параллельных процессов в таких системах, как правило, невелико (не более 16), и управляет или централизованная операционная система. Во-вторых, процессы обмениваются не с помощью "узкой" коммуникационной сети, как в системах с массовым параллелизмом, а через общую оперативную память с "широким" и быстрым интерфейсом. Однако здесь есть свои тонкости. В идеале - запросы всех процессов в память обслуживаются без конфликтов или с минимальной задержкой из-за межпроцессорных конфликтов. Еще при создании первых многопроцессорных мейнфреймов появился термин "bottleneck ("бутылочное горлышко"), которым определяется влияние пропускной способности оперативной памяти на производительность системы. Производительность систем не повышалась пропорционально числу процессоров, несмотря на большие затраты. Так например, сложнейшие средства снижения межпроцессорных конфликтов в оперативной памяти суперЭВМ CRAY X-MP/Y-MP позволяют получить коэффициент ускорения не более 3.5 для четырехпроцессорной системы.

Для многопроцессорной организации компактных серверов была предложена архитектура SMP (Shared-Memory multiProcessing – мультипроцессирование с разделением памяти), предполагающая объединение процессоров на общей шине оперативной памяти. За аппаратную простоту реализации средств SMP приходится расплачиваться процессорным временем ожидания в очереди к шине оперативной памяти, но в большинстве случаев пользователи готовы добавить в сервер один или более процессоров (но редко больше 4-х) в надежде увеличить производительность системы. Стоимость этой операции мала по сравнению со стоимостью самого сервера, а результат чаще всего оправдывает ожидания пользователя. Данная архитектура стала стандартом "де-факто" для всех современных микропроцессорных серверов, например Hewlett-Packard HP/9000 или DEC AlphaServer AXP. Будущее систем данной архитектуры связано с ростом пропускной способности системных шин.