Единственный поток инструкций, единственный поток данных (Single Instruction stream, Single Data stream) Одноядерный процессор.
MIMD
Несколько потоков инструкций, несколько потоков данных (Multiple Instruction streams, Multiple Data streams), Мультипроцессор.
SPMD
Одна программа, несколько потоков данных (Single Program Multiple Data). Обычная модель MIMD-программирования, где одна прог рамма запускается сразу на всех процессорах.
Привести примеры компьютеров, подпадающих под категорию «несколько потоков инструкций, один поток данных» (MISD), довольно трудно, в инвертированном «варианте* смысла намного больше. SIMD-компьютеры работают с векторами данных. Например, одна SIM D-инструкция может сложить 64 числа, отправив 64 потока данных по адресу 64 АЛ У для формирования 64 сумм за один тактовый цикл.
Достоинства SIMD состоят в том, что все параллельные исполнительные устройства синхронизированы, и все они реагируют на одну и ту же инструкцию, которая выдается при работе одного и того же счетчика команд (PC). С точки зрения программиста это весьма близко к уже знакомому SISD. Хотя каждое исполнительное устройство будет выполнять одну и ту же инструкцию, у каждого из них есть свои собственные регистры адресов, и поэтому у каждого устройства разные адреса данных. Таким образом, в терминах табл. 7.1, последовательное приложение могло бы быть откомпилировано для работы на последовательном оборудовании с организацией SISI) или на параллельном оборудовании, имеющем организацию SIMD.
Первоначальной мотивацией создания SIMD была амортизация стоимости блока управления нескольких десятков исполнительных устройств. Еще одно преимущество состоит в сокращении размера памяти программы, поскольку для SIMD нужна только одна копия одновременно выполняемого кода, в то время как для MIMD-систе.м с передачей сообщений может понадобиться копия на каждом процессоре, а для MIMD-систем с общей памятью понадобится несколько устройств кэш-памяти инструкций.
SIMD-система лучше всего работает с массивами в циклах for. Следовательно, чтобы параллелизм работал в SIMD, должно быть большое количество одинаковы* структур данных, что называется параллелизмом на уровне данных. Самым слабым местом SIMD-системы являются инструкции case или switch, где каждое исполнительное устройство должно выполнять над своими данными разные операции, в зависимости от тех данных, которыми она располагает. Исполнительные устройства с неверными данными блокируются, чтобы устройства с приемлемыми данными могли продолжит ь работу. В таких ситуациях, по сути, достигается производительность. равная 1/и, где п представляет собой количество случаев неверных данных.
Один поток инструкций, несколько потоков данных (Single Instruction stream, Multiple Data streams). Мультипроцессор. Одна и та же инструкция применяется к нескольким потокам данных, как в векторном или матричном процессоре.
Источник:
Нет комментариев. Ваш будет первым!