Классификация параллельных ВС Признаки классификации параллельных ВС В литературе описаны десятки систем классификации параллельных ВС, которые различаются по количеству и типам учитываемых признаков и по глубине иерархии классификации. Все эти системы классификации можно с определенной степенью условности разделить на четыре основные группы по: · системно-функциональным характеристикам ВС и характеристикам управления; · характеристикам топологии размещения процессоров и машин в ВС и связей между их элементами; · характеристикам собственно способов параллельной обработки; · структурно-функциональным характеристикам степени и типа параллельной обработки информации. Основные признаки систем классификации первой группы характеризуют однородность и неоднородность ВС, централизацию и децентрализацию управления и его иерархию, универсальность и специализацию, степень и уровень связанности процессоров и машин, степень закрепленности функций за процессорами и машинами, режимы работы и т.п. Системы второй группы содержат признаки, отражающие конструктивную разделимость или неразделимость ВС, конфигурацию соединительных шин и коммутаторов, изменяемость или неизменяемость структуры и др. Различают следующие основные топологии размещения элементов параллельной ВС: линейка, кольцо, дерево, решетка, звезда, гиперкуб, тор. Подробнее данные топологии будут рассмотрены в разделе «Распределенные составные коммутаторы». Соединительные шины и коммутаторы также могут иметь различную конфигурацию, различают, например, коммутаторы Клоза, баньян-сети (дельта- и омега-сети) и др. Признаки третьей группы характеризуют способы параллельной обработки информации, такие как многомашинный, многопроцессорный, магистральный, векторный, матричный и ассоциативный. Признаки четвертой группы определяют единственные или множественные потоки команд и данных, их структуру и другие характеристики. Для сравнительной характеристики архитектур параллельных ВС в настоящее время чаще других применяется последняя группа классификаций, которая в основном опирается на классификацию М. Дж. Флинна. Классификация Флинна Вычислительный процесс в ВС можно представить как воздействие определенной последовательности команд программы (потока команд) на соответствующую последовательность данных (поток данных), обрабатываемых этой последовательностью команд. Следовательно, различные способы организации любого типа обработки информации можно рассматривать как способы организации одновременного воздействия одного или нескольких потоков команд на один или несколько потоков данных. Для такой классификации в 1966 г. М. Дж. Флинном было введено понятие множественности потоков команд и данных. Следуя ему, под множественным потоком команд (данных) мы будем понимать наличие в системе нескольких последовательностей команд, находящихся в стадии реализации (нескольких последовательностей данных, подвергающихся обработке командами). Рассматривая ВС с точки зрения единственности и множественности потоков команд и данных, их можно разбить на четыре основных класса. 1. Системы с одиночным потоком команд и одиночным потоком данных (ОКОД), Single Instruction stream / Single Data stream (SISD). ![](http://konspekta.net/megapredmetru/baza1/21697137076.files/image206.gif) Рис. 5.4. Класс SISD (ОКОД) Одиночный поток команд (ПК) поступает на вход единственного обрабатывающего устройства (ОУ), которое обрабатывает одиночный поток данных (ПД). Традиционно к классу SISD относят все возможные ЭВМ последовательного типа. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Как правило, не учитывается тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. 2. Системы с множественным потоком команд и одиночным потоком данных (МКОД), Multiple Instruction stream / Single Data stream (MISD). Система класса MISD должна иметь несколько обрабатывающих устройств, на каждое из которых поступает свой поток команд. Обработке при этом подвергается единственный поток данных, который, без ограничения общности, может быть разбит на несколько последовательно обрабатываемых каждым ОУ порций. Очевидное предназначение MISD-систем – конвейерная обработка информации, поэтому часть исследователей относят к данному классу конвейерные машины. Однако, значительная часть ученых (среди них был и сам Флинн) склонна считать данный класс пустым. В настоящий момент в научной среде нет однозначного толкования данного вопроса. В дальнейшем, рассматривая конвейерную обработку информации, мы будем иметь в виду класс MISD. ![](http://konspekta.net/megapredmetru/baza1/21697137076.files/image208.gif) Рис. 5.5. Класс MISD (MКОД) 3. Системы с одиночным потоком команд и множественным потоком данных (ОКМД), Single Instruction stream / Multiple Data stream (SIMD). Единственный поток команд поступает одновременно на вход нескольких обрабатывающих устройств, каждое из которых выполняет общую для всех ОУ команду над очередным элементом своего потока данных. В класс SIMD входят векторные, матричные и ассоциативные ВС, в которых одна команда может выполняться над множеством элементов данных. ![](http://konspekta.net/megapredmetru/baza1/21697137076.files/image210.gif) Рис. 5.6. Класс SIMD (ОКМД) 4. Системы с множественным потоком команд и множественным потоком данных (МКМД), Multiple Instruction stream / Multiple Data stream (MIMD). ![](http://konspekta.net/megapredmetru/baza1/21697137076.files/image212.gif) Рис. 5.7. Класс MIMD (МКМД) В MIMD-системе имеется множество, как правило, связанных между собой, обрабатывающих устройств, каждое из которых управляется собственным потоком команд и обрабатывает собственный поток данных. В данный класс попадают практически все многопроцессорные и многомашинные ВС. Как нетрудно заметить, классификация Флинна имеет существенные недостатки – во-первых, неопределен состав класса MISD, во-вторых, перегружен класс MIMD, который включает в себя множество ВС с довольно различной архитектурой, в-третьих, в классификацию Флинна однозначно не укладываются так называемые нетрадиционные параллельные архитектуры – гибридные системы, ВС, управляемые потоком данных и др. Но, несмотря на эти недостатки, классификация Флинна является наиболее употребительной вплоть до сегодняшнего дня. В 1984 г. К. Ванг и Ф. Бриггс сделали некоторые дополнения к классификации Флинна. Оставляя четыре ранее введенных базовых класса (SISD, SIMD, MISD, MIMD), авторы внесли следующие изменения. Класс SISD разбивается на два подкласса: · системы с единственным функциональным устройством; · системы, имеющие в своем составе несколько функциональных устройств. В класс SIMD также вводится два подкласса: · системы с пословно-последовательной обработкой информации; · системы с разрядно-последовательной обработкой. В классе MIMD авторы различают · вычислительные системы со слабой связью между процессорами, к которым относятся все системы с распределенной памятью; · вычислительные системы с сильной связью (системы с общей памятью). Классификация Фенга Помимо М. Флинна, попытки классификации параллельных ВС предпринимали и другие ученые. В 1972 году Т. Фенг предложил достаточно простую классификацию, в основе которой лежат две характеристики - число бит n в машинном слове (фактически длина машинного слова), обрабатываемых параллельно при выполнении машинных команд, и число слов m, обрабатываемых одновременно данной вычислительной системой. По Фенгу, функционирование любой ЭВМ или ВС можно представить как параллельную обработку n битовых слоев, на каждом из которых независимо преобразуются m бит. Опираясь на такую интерпретацию, вторую характеристику обычно называют шириной битового слоя. Каждая вычислительная система C может быть описана парой чисел (n,m) и представлена точкой на плоскости в системе координат «длина слова - ширина битового слоя». Площадь прямоугольника со сторонами n и m определяет интегральную характеристику потенциала параллельности P архитектуры и носит название максимальной степени параллелизма вычислительной системы: ![](http://konspekta.net/megapredmetru/baza1/21697137076.files/image214.gif) | (5.7) | В качестве примера рассмотрим вычислительный кластер из 4 вычислительных модулей, построенных на платформе процессора Intel Xeon HT 3,2 МГц. Каждый процессор имеет длину машинного слова 32 бита и по два набора конвейерных функциональных устройств, которые, с учетом технологии Hyper Threading, способны одновременно обрабатывать 2 потока вычислений. При этом конвейер функциональных устройств имеет 20 ступеней. Таким образом, в кластере одновременно могут обрабатываться (4процессора x 2потока x 20ступеней)=160 машинных слов. Указанная вычислительная система по Фенгу может быть описана парой (32, 160), причем максимальная степень параллелизма составит 32x160=5120. На основе введенных понятий все вычислительные системы в зависимости от способа обработки информации, заложенного в их архитектуру, можно разделить на четыре класса. · Разрядно-последовательные, пословно-последовательные (n=m=1). В каждый момент времени такие ВС обрабатывают только один двоичный разряд. Представителем данного класса служит давняя система MINIMA с естественным описанием (1,1). · Разрядно-параллельные, пословно-последовательные (n>1, m=1). К данному классу принадлежит большинство классических ЭВМ последовательного типа (если не учитывать конвейерность функциональных устройств современных микропроцессоров), например: PDP-11 с описанием (16,1), IBM S/360 и VAX 11/780 - обе с описанием (32,1). · Разрядно-последовательные, пословно-параллельные (n=1, m>1). Вычислительные системы данного класса состоят из большого числа одноразрядных процессорных элементов, каждый из которых может независимо от остальных обрабатывать свои данные. Типичными примерами служат ассоциативные системы, такие как STARAN (1, 256). · Разрядно-параллельные, пословно-параллельные (n>1, m>1). Большая часть существующих параллельных вычислительных систем, обрабатывая одновременно m×n двоичных разрядов, принадлежит именно к этому классу. Недостатки предложенной классификации достаточно очевидны и связаны со способом вычисления ширины битового слоя m. По существу Фенг не делает никакого различия между процессорными матрицами, векторно-конвейерными и многопроцессорными системами. Не делается акцент на том, за счет чего ЭВМ или ВС может одновременно обрабатывать более одного слова: множественности функциональных устройств, их конвейерности или же какого-то числа независимых процессоров. Если в системе N независимых процессоров имеют каждый по F конвейерных функциональных устройств с длиной конвейера L, то для вычисления ширины битового слоя надо просто найти произведение данных характеристик. Тем не менее, классификация Фенга представляет значительную ценность за счет введения единой числовой метрики для всех типов ЭВМ и ВС, которая вместе с описанием потенциала вычислительных возможностей конкретной архитектуры позволяет сравнить любые две системы между собой. |