MIMD
Класс MIMD*
- МКМД(MIMD) (multiple
instruction stream / multiple data stream) - множественный
поток команд и множественный поток данных.
Этот
класс предполагает, что в вычислительной
системе есть несколько устройств
обработки команд, объединенных
в единый комплекс и работающих
каждый - со своим потоком команд
и данных.
*)В классификации архитектур
вычислительных систем, предложенной
в 1966 году М.Флинном. Классификация базируется
на понятии потока, под которым понимается
последовательность элементов, команд
или данных, обрабатываемая процессором.
На основе числа
потоков команд и потоков данных
Флинн выделяет четыре класса
архитектур: ОКОД(SISD), МКОД(MISD), ОКМД(SIMD),
МКМД(MIMD).
Классификация
Хокни*
MIMD
переключаемые
конвейерные
сети
С виртуальной
общей памятью
С распределенной
памятью
Регулярные
решетки
гиперкубы
Иерархические
структуры
Изменяющие
конфигурацию
С общей
памятью
- Переключаемые
- с общей памятью
- с общей виртуальной
памятью
- с распределённой
памятью
- Конвейерные
- Сети
- решетки
- гиперкубы
- иерархические
структуры
- изменяющие конфигурацию
- …
*) Р. Хокни (R. Hockney) -
известный английский специалист в области
параллельных вычислительных систем,
разработал свой подход к классификации,
введенной им для систематизации компьютеров,
попадающих в класс MIMD по систематике
Флинна.
Переключаемые
- Компьютеры
с распределенной
памятью (Distributed memory)
Процессор может обращаться
к локальной памяти, может посылать
и получать сообщения, передаваемые
по сети, соединяющей процессоры.
Сообщения используются для осуществления
связи между процессорами или,
что эквивалентно, для чтения
и записи удаленных блоков
памяти. В идеализированной сети
стоимость посылки сообщения
между двумя узлами сети не
зависит как от расположения
обоих узлов, так и от трафика
сети, но зависит от длины сообщения.
- Компьютеры
с общей (разделяемой)
памятью (True shared memory)
Все процессоры совместно
обращаются к общей памяти, обычно,
через шину или иерархию шин.
В идеализированной PRAM (Parallel Random Access
Machine - параллельная машина с произвольным
доступом) модели, часто используемой
в теоретических исследованиях
параллельных алгоритмов, любой
процессор может обращаться к
любой ячейке памяти за одно
и то же время. На практике
масштабируемость этой архитектуры
обычно приводит к некоторой
форме иерархии памяти. Частота
обращений к общей памяти может
быть уменьшена за счет сохранения
копий часто используемых данных
в кэш-памяти, связанной с каждым
процессором. Доступ к этому кэш-памяти
намного быстрее, чем непосредственно
доступ к общей памяти.
- Компьютеры
с виртуальной
общей (разделяемой)
памятью (Virtual shared memory)
Общая память как
таковая отсутствует. Каждый процессор
имеет собственную локальную
память и может обращаться
к локальной памяти других
процессоров, используя "глобальный
адрес". Если "глобальный адрес"
указывает не на локальную
память, то доступ к памяти
реализуется с помощью сообщений,
пересылаемых по коммуникационной
сети.
Переключаемые
с общей памятью
Переключаемые
с распределенной памятью
Конвейерные
- В класс конвейерных
архитектур (по Хокни) попадают машины
с одним конвейерным устройством
обработки, работающим в режиме
разделения времени для отдельных
потоков.
- Основу конвейерной
обработки составляет раздельное выполнение
некоторой операции в несколько этапов
(за несколько ступеней) с передачей данных
одного этапа следующему. Производительность
при этом возрастает благодаря тому, что
одновременно на различных ступенях конвейера
выполняются несколько операций. Конвейеризация
эффективна только тогда, когда загрузка
конвейера близка к полной, а скорость
подачи новых операндов соответствует
максимальной производительности конвейера.
Если происходит задержка, то параллельно
будет выполняться меньше операций и суммарная
производительность снизится. Векторные
операции обеспечивают идеальную возможность
полной загрузки вычислительного конвейера.
При выполнении векторной
команды одна и та же операция
применяется ко всем элементам
вектора (или чаще всего к соответствующим
элементам пары векторов). Для
настройки конвейера на выполнение
конкретной операции может потребоваться
некоторое установочное время, однако
затем операнды могут поступать
в конвейер с максимальной
скоростью, допускаемой возможностями
памяти. При этом не возникает
пауз ни в связи с выборкой
новой команды, ни в связи с
определением ветви вычислений
при условном переходе. Таким
образом, главный принцип вычислений
на векторной машине состоит
в выполнении некоторой элементарной
операции или комбинации из
нескольких элементарных операций,
которые должны повторно применяться
к некоторому блоку данных. Таким
операциям в исходной программе
соответствуют небольшие компактные
циклы.
Сетевые структуры
При рассмотрении
MIMD машин с сетевой структурой
считается, что все они
имеют распределенную
память, а дальнейшая классификация
проводится в
соответствии с
топологией сети:
- звездообразная
сеть (lCAP),
- регулярные решетки
разной размерности (Intel Paragon, CRAY T3D),
- гиперкубы (NCube,
Intel iPCS),
- сети с иерархической
структурой, такой, как деревья, пирамиды,
кластеры (Cm* , CEDAR),
- сети, изменяющие
свою конфигурацию.
Сетевая структура:
решетка, гиперкуб
- В архитектуре,
в которой пары из процессора
и модуля памяти (процессорный
элемент) соединены сетью с топологий
решетка, каждый процессор имеет одно
и то же число подключений к сети вне зависимости
от числа процессоров компьютера. Общая
пропускная способность такой сети растет
линейно относительно числа процессоров.
- В архитектуре,
имеющей сеть с топологий гиперкуб,
число соединений процессора с сетью является
логарифмической функцией от числа процессоров,
а пропускная способность сети растет
быстрее, чем линейно по отношению к числу
процессоров.
Сетевая структура:
полный граф связей
- В топологии
клика (полный
граф связей) каждый процессор должен
быть соединен со всеми другими процессорами.
Гибридные
типы
Если архитектура
компьютера спроектирована с
использованием нескольких сетей
с различной топологией, то, по
всей видимости, по аналогии с
гибридными MIMD с переключателями, их
стоит назвать гибридными
сетевыми MIMD, а использующие идеи разных
классов - просто гибридными MIMD. Типичным
представителем последней группы, в частности,
является компьютер Connection Machine 2, имеющим
на внешнем уровне топологию гиперкуба,
каждый узел которого является кластером
процессоров с полной связью.