Введение
Архитектура параллельных вычислений
В вычислительной технике, архитектура множественных инструкций, единых данных (MISD) — это тип архитектуры параллельных вычислений, в котором множество функциональных блоков выполняют различные операции над одним и тем же набором данных. Архитектуры конвейерной обработки относятся к этому типу, хотя строгий специалист может утверждать, что данные изменяются после обработки на каждом этапе конвейера. Отказоустойчивость, достигаемая за счет избыточного выполнения одних и тех же инструкций для обнаружения и маскировки ошибок, известная как репликация задач, также может рассматриваться как относящаяся к этому типу. Области применения этой архитектуры встречаются значительно реже, чем у архитектур MIMD и SIMD, поскольку последние две часто более эффективны для типичных задач, связанных с параллельной обработкой данных. В частности, они обеспечивают лучшее масштабирование и использование вычислительных ресурсов. Однако, одним из известных примеров применения MISD в вычислительной технике являются бортовые компьютеры управления полетом космического шаттла.
Систолические массивы
Систолические массивы (< процессоры волнового фронта), впервые описанные Х. Т. Кунгом и Чарльзом Э. Лейзерсоном, являются примером архитектуры MISD. В типичном систолическом массиве параллельные входные данные проходят через сеть аппаратно реализованных процессорных узлов, напоминающих человеческий мозг, которые объединяют, обрабатывают, суммируют или сортируют входные данные, формируя результирующий вывод. Систолические массивы часто аппаратно оптимизированы для выполнения конкретной операции, такой как "умножение и накопление", для обеспечения массивно-параллельного выполнения интеграции, свёртки, корреляции, умножения матриц или сортировки данных. Систолический массив обычно состоит из большой монолитной сети примитивных вычислительных узлов, которые могут быть аппаратно реализованы или программно сконфигурированы для конкретного приложения. Узлы обычно фиксированы и идентичны, а соединения между ними программируемы. Более универсальные процессоры волнового фронта, напротив, используют сложные и индивидуально программируемые узлы, которые могут быть монолитными или распределёнными, в зависимости от размера массива и параметров проектирования. Поскольку волнообразное распространение данных через систолический массив напоминает пульсацию кровеносной системы человека, название "систолический" было заимствовано из медицинской терминологии. Значительным преимуществом систолических массивов является то, что все операнды и промежуточные результаты содержатся внутри (проходят через) массив процессоров. Нет необходимости обращаться к внешним шинам, основной памяти или внутренним кэшам во время каждой операции, как это происходит в стандартных последовательных машинах. Последовательные ограничения на параллельную производительность, определяемые законом Амдаля, также не применимы в полной мере, поскольку зависимости данных неявно обрабатываются программируемыми соединениями между узлами. Поэтому систолические массивы особенно эффективны в задачах искусственного интеллекта, обработки изображений, распознавания образов, компьютерного зрения и других задач, которые животные мозги выполняют исключительно хорошо. Процессоры волнового фронта, в целом, также могут быть эффективны в машинном обучении, реализуя самонастраивающиеся нейронные сети на аппаратном уровне. Хотя систолические массивы официально классифицируются как MISD, эта классификация несколько проблематична. Поскольку входные данные обычно представляют собой вектор независимых значений, систолический массив не является SISD. Поскольку эти входные значения объединяются и суммируются в результат(ы) и теряют свою независимость, в отличие от векторного процессора SIMD, массив нельзя классифицировать как SIMD. Следовательно, массив также нельзя классифицировать как MIMD, поскольку MIMD можно рассматривать как просто набор меньших SISD и SIMD машин. Наконец, поскольку поток данных преобразуется по мере прохождения через массив от узла к узлу, несколько узлов не работают с одними и теми же данными, что делает классификацию MISD не совсем корректной. Другая причина, по которой систолический массив не должен считаться MISD, аналогична той, что исключает его из категории SISD: входные данные обычно представляют собой вектор, а не одно значение данных, хотя можно утверждать, что любой входной вектор является единым набором данных. Несмотря на вышесказанное, систолические массивы часто приводятся в качестве классического примера архитектуры MISD в учебниках по параллельным вычислениям и на инженерных курсах. Если рассматривать массив как неделимую сущность, то, возможно, его следует классифицировать как SFMuDMeR = единая функция, множественные данные, объединенный результат(ы).