Множественные инструкции, отдельные данные

Архитектура параллельных вычислений

В вычислительной технике множественные инструкции, отдельные данные ( MISD ) — это тип архитектуры параллельных вычислений , в которой множество функциональных блоков выполняют различные операции с одними и теми же данными. Конвейерные архитектуры относятся к этому типу, хотя пурист мог бы сказать, что данные отличаются после обработки на каждом этапе конвейера. Отказоустойчивость, избыточное выполнение одних и тех же инструкций для обнаружения и маскировки ошибок, способом, известным как репликация задач , можно считать принадлежащей к этому типу. Приложения для этой архитектуры гораздо менее распространены, чем MIMD и SIMD , поскольку последние два часто более подходят для общих методов параллельной обработки данных. В частности, они позволяют лучше масштабировать и использовать вычислительные ресурсы. Однако одним из ярких примеров MISD в вычислительной технике являются компьютеры управления полетом космического челнока . [2]

Систолические массивы

Систолические массивы (< wavefront процессоры), впервые описанные HT Kung и Charles E. Leiserson, являются примером архитектуры MISD . В типичном систолическом массиве параллельные входные данные проходят через сеть жестко соединенных процессорных узлов , напоминающих человеческий мозг , которые объединяют, обрабатывают, объединяют или сортируют входные данные в производный результат.

Систолические массивы часто жестко запрограммированы для определенной операции, такой как «умножение и накопление», для выполнения задач массивной параллельной интеграции, свертки , корреляции , умножения матриц или сортировки данных. Систолический массив обычно состоит из большой монолитной сети примитивных вычислительных узлов , которые могут быть жестко запрограммированы или сконфигурированы программно для определенного приложения. Узлы обычно фиксированы и идентичны, в то время как межсоединение программируемо. Более общие процессоры волнового фронта , напротив, используют сложные и индивидуально программируемые узлы, которые могут быть или не быть монолитными, в зависимости от размера массива и параметров конструкции. Поскольку волнообразное распространение данных через систолический массив напоминает пульс человеческой кровеносной системы, название систолический было придумано из медицинской терминологии.

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

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

Хотя систолические массивы официально классифицируются как MISD, их классификация несколько проблематична. Поскольку входные данные обычно являются вектором независимых значений, систолический массив не является SISD . Поскольку эти входные значения объединяются и комбинируются в результат(ы) и не сохраняют свою независимость , как это было бы в блоке обработки векторов SIMD , массив не может быть классифицирован как таковой. Следовательно, массив также не может быть классифицирован как MIMD , поскольку MIMD можно рассматривать как простое собрание меньших машин SISD и SIMD.

Наконец, поскольку рой данных преобразуется по мере прохождения через массив от узла к узлу, несколько узлов не работают с одними и теми же данными, что делает классификацию MISD неправильной . Другая причина, по которой систолический массив не должен подпадать под категорию MISD , та же самая, что и та, которая исключает его из категории SISD: входные данные обычно представляют собой вектор, а не одно значение данных, хотя можно утверждать, что любой заданный входной вектор представляет собой один набор данных.

Несмотря на вышесказанное, систолические массивы часто предлагаются как классический пример архитектуры MISD в учебниках по параллельным вычислениям и в инженерном классе. Если массив рассматривается снаружи как атомарный, его, возможно, следует классифицировать как SFMuDMeR = single function, multiple data, merged result(s). [3] [4] [5] [6]

Сноски

  1. ^ Флинн, Майкл Дж. (сентябрь 1972 г.). «Некоторые компьютерные организации и их эффективность» (PDF) . IEEE Transactions on Computers . C-21 (9): 948–960. doi :10.1109/TC.1972.5009071.
  2. ^ Спектор, А.; Гиффорд, Д. (сентябрь 1984 г.). «Основная компьютерная система космического челнока». Communications of the ACM . 27 (9): 872–900. doi : 10.1145/358234.358246 . S2CID  39724471.
  3. ^ Майкл Дж. Флинн, Кевин В. Радд. Параллельные архитектуры . CRC Press, 1996.
  4. ^ Куинн, Майкл Дж. Параллельное программирование на языке C с использованием MPI и OpenMP . Бостон: McGraw Hill, 2004.
  5. ^ Ибаруден, Джаффер. «Параллельная обработка, EG6370G: Глава 1, Мотивация и история». Университет Святой Марии, Сан-Антонио, Техас. Весна 2008 г.
  6. ^ Null, Linda; Lobur, Julia (2006). Основы организации и архитектуры компьютеров . 468: Jones and Bartlett.{{cite book}}: CS1 maint: местоположение ( ссылка )
Получено с "https://en.wikipedia.org/w/index.php?title=Несколько_инструкций,_отдельные_данные&oldid=1229801534"