Классификация вычислительных платформ и архитектур
Для полного представления о многопроцессорных вычислительных системах, помимо высокой производительности необходимо назвать и необычные архитектурные решения, направленные на повышение производительности (работа с векторными операциями, организация быстрого обмена сообщениями между процессорами или организация глобальной памяти в многопроцессорных системах и др.).
Понятие архитектуры высокопроизводительной системы является достаточно широким, поскольку под архитектурой можно понимать и способ параллельной обработки данных, используемый в системе, и организацию памяти, и топологию связи между процессорами, и способ исполнения системой арифметических операций. Попытки систематизировать все множество архитектур впервые были предприняты в конце 60-х годов и продолжаются по сей день, но к однозначны выводам так и не привели.
Даже краткое перечисление типов ВС даёт понять, что для ориентирования в этом многообразии необходима чёткая система классификация.
Цели классификации архитектур:
· облегчить понимание достижений и перспектив в области архитектуры ВС;
· подсказать новые пути организации архитектур (заполнение пустых классов);
· служить моделью анализа производительности.
6.1.1 Классификация Флинна.
Среди всех рассматриваемых систем классификации ВС наибольшее признание получила классификация, предложенная в 1966 году Флинном. В её основу положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемых процессором. В зависимости от количества потоков команд и потоков данных, Флинн выделяет четыре класса архитектуры::
SISD = Single Instruction Stream/Single Data Stream;
MISD = Multiple Instruction Stream/Single Data Stream;
SIMD = Single Instruction Stream/Multiple Data Stream;
MIMD = Multiple Instruction Stream/Multiple Data Stream.
SISD– одиночный поток команд и одиночный поток данных (рис.6.1). К этому классу относятся все однопроцессорные и одномашинные варианты ВС, т.е. последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В этот класс можно включить и векторно-конвейерные машины, если рассматривать вектор как одно неделимое данное для соответствующей команды. В таком случае в этот класс попадут и такие системы, как CRAY-1, CYBER 205, машины семейства FACOM VP и многие другие.
MISD- множественный поток команд и одиночный поток данных. Из определения следует, что в архитектуре ВС присутствует множество процессоров, обрабатывающих один поток данных. Примером могла бы служить ВС, на процессоры которой подаётся искажённый сигнал, а каждый из процессоров обрабатывает этот сигнал с помощью своего алгоритма фильтрации. Тем не менее, ни Флинн, ни другие специалисты в области архитектуры компьютера до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят к данному классу конвейерные системы, однако это не нашло окончательного признания. Отсюда принято считать, что пока данный класс пуст. Наличие пустого класса не следует считать недостатком классификации Флинна, так как такие классы могут стать чрезвычайно полезными для разработки принципиально новых концепций в теории и практике построения ВС.
SIMD – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единое управляющее устройство контролирует множество процессорных элементов. Каждый процессорный элемент получает от устройства управления в каждый фиксированный момент времени одинаковую команду и выполняет ее над своими локальными данными. Используются для решения научных и технических задач с векторами и массивами.
ВМ данной архитектуры позволяют выполнять одну арифметическую операцию сразу над многими данными – элементами вектора. Бесспорными представителями класса SIMD считаются матрицы процессоров, где единое управляющее устройство контролирует множество процессорных элементов. К ним относятся матрицы процессоров: ILLIAC IV, ICL DAP, Goodyear Aerospace MPP, Connection Machine 1 и т.п. В принципе в этот класс можно включить и векторно-конвейерные ВС, например, CRAY-1, если каждый элемент вектора рассматривать как отдельный элемент потока данных.
MIMD - множественный поток команд и множественный поток данных. Класс предполагает наличие в вычислительной системе множества устройств обработки команд, объединённых в единый комплекс и работающих каждое со своим потоком команд и данных. Команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи.
Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы. Кроме того, приобщение к классу MIMD зависит от трактовки. Так, векторно-конвейерные ВС можно вполне отнести к классу MIMD, если конвейерную обработку рассматривать как выполнение множества команд (операций ступеней конвейера) над множественным скалярным потоком.
Схема классификации Флинна вплоть до настоящего времени является наиболее распространенной при первоначальной оценке той или иной ВС, поскольку позволяет сразу оценить базовый принцип работы системы, чего часто бывает достаточно. Очевидным недостатком классификации является неспособность однозначно отнести некоторые архитектуры к тому или иному классу. Другой недостаток – чрезмерная насыщенность класса MIMD. Всё это породило множественные попытки изменить классификацию.
Отношение конкретных машин к конкретному классу в большой степени зависит от точки зрения исследователя. Конвейерные машины могут быть отнесены и к классу SISD (конвейер — единый процессор), и к классу SIMD (векторный поток данных с конвейерным процессором), и к классу MISD (множество процессоров конвейера обрабатывают один поток данных последовательно), и к классу MIMD —как выполнение последовательности различных команд (операций ступеней конвейера) на множественным скалярным потоком данных (вектором).
Хотя систематика Флинна широко используется при конкретизации типов компьютерных систем, она приводит к тому, что практически все виды параллельных систем (несмотря на их существенную разнородность) относятся к одной группе MIMD. Как результат, многими исследователями предпринимались неоднократные попытки детализации систематики Флинна Так, например, для класса MIMD предложена практически общепризнанная структурная схема, в которой дальнейшее разделение типов относятся к одной группе MIMD. Как результат, многими исследователями предпринимались неоднократные попытки детализации систематики Флинна. Так, например, для класса MIMD предложена практически общепризнанная структурная схема, в которой дальнейшее разделение типов многопроцессорных систем основывается на используемых способах организации оперативной памяти в этих системах .
6.1.2 Классификация Хокни
Для детализации систематики Флинна Хокни предложил выделить три класса машин MIMD-архитектуры:
· переключаемые — с общей памятью и с распределённой памятью Вычислительные машины, в которых каждый поток обрабатывается своим собственным устройством, Хокни назвал переключаемыми. Все ВМ, в которых возможна связь каждого процессора с каждым реализуется с помощью переключателей — машины с распределённой памятью. Если же память есть разделяемый ресурс, машина называется с общей памятью;
· конвейерные - ВМ с одним конвейерным устройством обработки, работающим в режиме разделения времени для отдельных потоков;
· сети — регулярные решётки, гиперкубы, иерархические структуры, изменяющие конфигурацию. При рассмотрении машин с сетевой структурой Хокни считал, что все они имеют распределённую память. Дальнейшую классификацию он проводил в соответствии с топологией сети.
6.1.3 Классификация Хэндлера
В основу классификации В.Хендлер закладывает явное описание возможностей параллельной и конвейерной обработки информации вычислительной системой. Предложенная классификация базируется на различии между тремя уровнями обработки данных в процессе выполнения программ:
· уровень выполнения программы — опираясь на счетчик команд и некоторые другие регистры, устройство управления (УУ) производит выборку и дешифрацию команд программы;
· уровень выполнения команд — арифметико-логическое устройство компьютера (АЛУ) исполняет команду, выданную ему устройством управления;
· уровень битовой обработки — все элементарные логические схемы процессора (ЭЛС) разбиваются на группы, необходимые для выполнения операций над одним двоичным разрядом.
Подобная схема выделения уровней предполагает, что вычислительная система включает какое-то число процессоров каждый со своим устройством управления. Если на какое-то время не рассматривать возможность конвейеризации, то число устройств управления k, число арифметико-логических устройств d в каждом устройстве управления и число элементарных логических схем w в каждом АЛУ (число разрядов в слове, обрабатываемых в АЛУ параллельно) составят тройку для описания данной вычислительной системы C: (k, d, w)