Из Википедии, бесплатной энциклопедии
  (Перенаправлено из MPMD )
Перейти к навигации Перейти к поиску

Таксономия Флинна - это классификация компьютерных архитектур , предложенная Майклом Дж. Флинном в 1966 году. [1] [2] Система классификации прижилась и использовалась в качестве инструмента при проектировании современных процессоров и их функций. С появлением многопроцессорных центральных процессоров (ЦП) контекст мультипрограммирования развился как расширение системы классификации.

Классификации [ править ]

Четыре классификации, определенные Флинном, основаны на количестве параллельных потоков инструкций (или управления) и потоков данных, доступных в архитектуре. [3]

Одиночный поток инструкций, единый поток данных (SISD) [ править ]

Последовательный компьютер, не использующий параллелизм ни в потоках команд, ни в потоках данных. Одиночный блок управления (CU) извлекает единый поток инструкций (IS) из памяти. Затем CU генерирует соответствующие управляющие сигналы, чтобы указать одному элементу обработки (PE) работать с одним потоком данных (DS), то есть по одной операции за раз.

Примерами архитектуры SISD являются традиционные однопроцессорные машины, такие как старые персональные компьютеры (ПК; к 2010 году многие ПК имели несколько ядер) и мэйнфреймы .

Один поток инструкций, несколько потоков данных (SIMD) [ править ]

Одна инструкция работает с несколькими разными потоками данных. Инструкции могут выполняться последовательно, например, путем конвейерной обработки, или параллельно несколькими функциональными модулями.

Одна инструкция, несколько потоков (SIMT) - это модель выполнения, используемая в параллельных вычислениях, где одна инструкция, несколько данных (SIMD) сочетается с многопоточностью . Это не отдельная классификация в таксономии Флинна, где она была бы подмножеством SIMD. Nvidia обычно использует этот термин в своих маркетинговых материалах и технических документах, где аргументирует новизну архитектуры Nvidia. [4]

Несколько потоков инструкций, один поток данных (MISD) [ править ]

Несколько инструкций работают с одним потоком данных. Это необычная архитектура, которая обычно используется для обеспечения отказоустойчивости. Гетерогенные системы работают с одним и тем же потоком данных и должны согласовывать результат. Примеры включают компьютер управления полетом Space Shuttle . [5]

Несколько потоков инструкций, несколько потоков данных (MIMD) [ править ]

Несколько автономных процессоров одновременно выполняют разные инструкции с разными данными. Архитектуры MIMD включают многоядерные суперскалярные процессоры и распределенные системы , использующие либо одно пространство общей памяти, либо пространство распределенной памяти.

Диаграмма сравнения классификаций [ править ]

Эти четыре архитектуры визуально показаны ниже. Каждый процессор (PU) показан для одноядерного или многоядерного компьютера:

Дальнейшие подразделения [ править ]

По состоянию на 2006 год все 10 ведущих суперкомпьютеров и большинство суперкомпьютеров TOP500 основаны на архитектуре MIMD.

Некоторые делят категорию MIMD на две категории ниже, [6] [7] [8] [9] [10], и иногда рассматриваются даже дополнительные подразделения. [11]

Одна программа, несколько потоков данных (SPMD) [ править ]

Несколько автономных процессоров, одновременно выполняющих одну и ту же программу (но в независимых точках, а не в блокировке, которую накладывает SIMD) с разными данными. Также называется « один процесс, несколько данных» [10] - использование этой терминологии для SPMD технически некорректно, поскольку SPMD является моделью параллельного выполнения и предполагает, что несколько взаимодействующих процессоров выполняют программу. SPMD - наиболее распространенный стиль параллельного программирования. [12] Модель и термин SPMD были предложены Фредерикой Даремой из команды RP3. [13]

Несколько программ, несколько потоков данных (MPMD) [ править ]

Несколько автономных процессоров одновременно работают как минимум с 2 независимыми программами. Обычно такие системы выбирают один узел в качестве «хоста» («явная модель программирования хост / узел») или «менеджера» (стратегия «менеджер / рабочий»), который запускает одну программу, которая передает данные всем остальным узлам. которые все запускают вторую программу. Затем эти другие узлы возвращают свои результаты непосредственно менеджеру. Примером этого может быть игровая консоль Sony PlayStation 3 с процессором SPU / PPU .

См. Также [ править ]

  • Таксономия Дункана
  • Классификация Фэна
  • Обработчик «S Система Эрланген Классификация  [ де ] (ECS)
  • SWAR

Ссылки [ править ]

  1. ^ Флинн, Майкл Дж. (Сентябрь 1972 г.). «Некоторые компьютерные организации и их эффективность». Транзакции IEEE на компьютерах . С-21 (9): 948–960. DOI : 10.1109 / TC.1972.5009071 .
  2. ^ Дункан, Ральф (февраль 1990). «Обзор параллельных компьютерных архитектур» (PDF) . Компьютер . 23 (2): 5–16. DOI : 10.1109 / 2.44900 . Архивировано (PDF) из оригинала 18.07.2018 . Проверено 18 июля 2018 .
  3. ^ http://www.cse.msu.edu/~cse820/lectures/CAQA5e_ch4.pdf
  4. ^ http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf
  5. ^ Спектор, А .; Гиффорд, Д. (сентябрь 1984 г.). «Основная компьютерная система космического челнока». Коммуникации ACM . 27 (9): 872–900. DOI : 10.1145 / 358234.358246 .
  6. ^ "Однопрограммный поток нескольких данных (SPMD)" . Llnl.gov . Проверено 9 декабря 2013 .
  7. ^ [1] Архивировано 1 сентября 2006 г., в Wayback Machine.
  8. ^ "Виртуальная мастерская СТС" . Web0.tc.cornell.edu . Проверено 9 декабря 2013 .
  9. ^ «NIST SP2 Primer: программирование с распределенной памятью» . Math.nist.gov. Архивировано из оригинала на 2013-12-13 . Проверено 9 декабря 2013 .
  10. ^ a b [2] Архивировано 3 февраля 2007 года в Wayback Machine.
  11. [3] Архивировано 10 сентября 2006 г., в Wayback Machine.
  12. ^ «Одна программа с несколькими данными» . Nist.gov. 2004-12-17 . Проверено 9 декабря 2013 .
  13. ^ Дарема, Фредерика ; Джордж, Дэвид А .; Нортон, В. Алан; Пфистер, Грегори Ф. (1988). "Вычислительная модель" одна программа - несколько данных "для EPEX / FORTRAN". Параллельные вычисления . 7 (1): 11–24. DOI : 10.1016 / 0167-8191 (88) 90094-4 .

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.