Многопроцессорная система (МПС) - это совокупность процессорных элементов, которые взаимодействуют в процессе решения одной вычислительной задачи под управлением общей операционной системы. Известно много различных структур МПС и несколько принципов их классификации. Наибольшее распространение получила классификация М.Флинна (M.Flynn), построенная на концепции потока.
При анализе ВС с точки зрения сочетания потоков данных и потоков команд возможны следующие варианты сочетаний: 1) одиночный поток команд - одиночный поток данных (ОКОД, или SISD – Single Instuction Stream/ Single Data Stream); 2) множественный поток команд - одиночный поток данных (МКОД, или MISD - Multiple Instuction Stream/Single Data Stream); 3) одиночный поток команд - множественный поток данных (ОКМД, или SIMD - Single Instuction Stream/ Multiple Data Stream); 4) множественный поток команд - множественный поток данных (МКМД, или MIMD - Multiple Instuction Stream /Multiple Data Stream).
Архитектура ОКОД (рис. 17.1, а) это последовательная однопроцессорная скалярная или суперскалярная структура, возможно, с конвейерной обработкой. На одном процессоре выполняется один поток команд; операции выполняются над данными, которые хранятся в одной области памяти.
К архитектуре МКОД (рис. 17.1, б) относят многопроцессорные конвейерные структуры.
Рис 17.1
Последовательность данных Д передается набору процессоров Пр1, Пр2,...,Прn, каждый из которых выполняет свою последовательность команд. Примером может служить устройство для сложения двух векторов, компоненты которых - числа с плавающей точкой - последовательно поступают на вход Пр1. Процессоры Пр2, ..., Прn выполняют операции сравнения порядков, выравнивания, сложения мантисс, нормализации в режиме конвейера (параллельно) над всеми компонентами вектора. Следует заметить, что единого мнения по классу MISD нет: есть утверждения, что подобные структуры на практике еще не были реализованы; возможно, этот класс пуст.
Архитектура ОКМД - многопроцессорная матричная структура (рис. 17.1, в). Массив процессоров обрабатывает поток команд, поступающих от центрального управляющего устройства. Каждая команда выполняется всеми процессорами одновременно над разными потоками данных.
Примером применения матричной ВС может служить выполнение операций типа вычисления определенного интеграла:
где Каждый процессор выполняет одну и ту же операцию .
Главное отличие матричной ВС от векторного процессора заключается в том, что во втором случае высокая производительность обеспечивается с помощью интенсивной конвейеризации, а в первом - за счет высокой степени параллелизма.
Вычислительная система с архитектурой типа МКМД (рис. 17.1, г) выполняет одновременно и независимо друг от друга несколько программных ветвей с различными наборами данных, обеспечивая в определенные моменты времени обмен данными. В схеме МКМД процессоры должны быть универсальными, поскольку они должны выполнять все команды, необходимые для соответствующего преобразования данных.
В классе МКМД различаются слабо- и сильносвязанные системы.
Слабосвязанные МКМД-системы - структуры с распределенной памятью. Вычислительные системы с такой структурой в качестве узлов используют законченные ЭВМ, включающие микропроцессор, память и подсистему ввода-вывода. Они объединяются коммуникационной средой, которая обеспечивает взаимодействие процессоров посредством простых операций ввода/вывода (рис. 17.2, а). Каждый процессор Пр1,...,ПрN имеет свой модуль памяти и устройство ввода-вывода. Обмен идет через коммуникационную среду
Рис. 17.2
Успехи микроэлектроники сделали возможным построение слабосвязанных систем, состоящих из сотен и тысяч процессорных элементов с возможностью наращивания их количества. Подобные структуры называют системами с массовым параллелизмом (MPP-системы - Mass-Parallel Processing).
Сильносвязанные МКМД-системы - структуры с разделяемой общей памятью. Процессоры совместно используют общую память и каждый из них имеет равные права доступа к программам и данным, которые там хранятся; процессоры могут обмениваться информацией через единое адресное пространство памяти. Такие ВС называются мультипроцессорными системами с общей памятью. Существует два варианта организации общей памяти:
1) все процессоры связываются с модулями общей памяти через коммуникационную среду; время обращения к памяти у всех процессоров одинаково и не зависит от того, к какому модулю памяти процессор обращается (см. рис. 17.2, б); такие МПС называют системами с однородным доступом;
2) каждый процессор имеет доступ к общей разделяемой памяти, но, кроме того, он может обращаться и к собственной локальной памяти (см. рис. 17.2, в); системы этого типа называют системами с неоднородным доступом. Доступ к локальной памяти идет намного быстрее, чем к общей, что повышает производительность ВС.
В качестве проблем, которые характерны для параллельных ВС с общей памятью указываются:
- высокая стоимость;
- неоднородность доступа к памяти: в то время как один процессор обращается к локальной памяти, другой может обращаться к удаленной - время доступа различно и это должно учитываться при организации общего вычислительного процесса;
- необходимость обеспечения согласованности содержимого кэш-памяти.
Сравнение многопроцессорных и многомашинных вычислительных систем приводит к следующим выводам.
Многопроцессорные ВС обеспечивают более быстрый обмен между процессорами, более высокую надежность и живучесть по сравнению с ММС.
Еще одна сложная проблема - эффективное распараллеливание вычислительного процесса или программы.
Дата: 2019-04-23, просмотров: 306.