КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ СТРУКТУР ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

Существует несколько подходов к построению количествен­ных характеристик структур вычислительных систем [6].

Выбираются два параметра - длина основного машинного слова м>, которая используется в обрабатывающих устройствах, и число параллельно обрабатываемых двоичных позиций дан­ного разряда множества слов V, т. е. ширина обрабатываемого разрядного среза. В качестве характеристики максимально воз­можной степени параллелизма системы принимается совокуп­ность этих параметров (\у, V). Тогда получаем:

а) (1 , 1 ) - полностью последовательная обработка одного бита информации за другим (одноразрядный процессор);

б) (\у, 1) - последовательная обработка \у-разрядных слов при параллельной обработке разрядов каждого слова в обыч­ном процессоре (\у>1);

в) (1, у) - последовательная обработка разрядных срезов слов при параллельной обработке содержимого данного разря­да множества слов (у>1) как, например, в системах с ассоциа­тивными процессорами;

г) (м>, V) - полностью параллельная обработка всех м> разря­дов каждого из V слов одновременно (V > 1, м> > 1).

При помощи этой двумерной характеристики максимально возможная степень параллельности обработки информацииобычной однопроцессорной системой IBM 3б0/50 (для основ­ного формата) может быть представлена одним модулем систе­мы с ансамблем процессоров РЕРЕ, одним квадрантом матрич­ной системы ILLIAC IV или одним модулем ассоциативной си­стемы STARAN [5, б].

Характеристики параллельности структур в совокупности с частотой синхронизации работы устройств вычислительных систем определяют их максимальную производительность или, в более общем случае, максимальную полосу пропускания, ко­торая может быть определена как наибольшее число двоичных разрядов, которые вычислительная система может обработать за единицу времени.

Приведенные характеристики параллельности непосред­ственно связаны с классификацией вычислительных систем. Действительно, системы с характеристиками (1 , 1 ) составляют класс ОКОДР; системы с характеристиками (w, 1), где w>1, -класс ОКОДС; с характеристиками (1 , v), где v > 1 , относятся к классу ОКМДР, а с характеристиками (w, v), где w> 1 и v > 1, классифицируются неоднозначно.

Проанализируем рассмотренные характеристики паралле­лизма структур вычислительных систем. Отметим, что ширина обрабатываемого разрядного среза v для большого числа типов систем, таких как обычные однопроцессорные, с ассоциа­тивными процессорами, матричные, с ансамблем процессоров, многомашинные и многопроцессорные - совпадает с максималь­ным числом одновременно (параллельно) обрабатываемых слов и, следовательно, с числом обрабатывающих процессоров.

Характеристики структур систем в виде двоек чисел (w v) не отражают различий между уровнями обработки и управле­ния в тех или иных параллельных системах. Так, например, ширина обрабатываемого разрядного среза v может быть пред­ставлена как количество процессоров в многопроцессорной си­стеме и как количество обрабатывающих процессоров в мат­ричной системе, хотя в первом случае может одновременно вы­полняться несколько программ, а во втором случае выполняет­ся одна программа. Иными словами, не учитывается соотноше­ние между числом модулей управления и обрабатывающих мо­дулей, и, следовательно, не учитываются различия между мно­гопроцессорными системами и матричными системами и т. п. Подобные трудности встречаются при попытках составления характеристик для структур магистральных систем. Таким об­разом, характеристики структур систем в виде двоек чисел (\у, у) приспособлены фактически только для систем с единственным потоком команд, т. е. систем классов ОКОД и ОКМД.

Другим естественным и простым подходом к построению количественных характеристик структур систем является исполь­зование двоек чисел (к, п), где к и п - количества потоков команд и данных соответственно. Такие характеристики непосредствен­но связаны с классификацией систем в зависимости от един­ственности и множественности потоков команд и данных. Они применяются в ряде работ.

Четыре основных класса вычислительных систем - с оди­ночными потоками команд и данных ОКОД (обычные процес­соры), с одиночным потоком команд и множественным пото­ком данных ОКМД (ассоциативные и матричные системы, сис­темы с ансамблем процессоров и с векторным потоком данных), с множественным потоком команд и одиночным потоком дан­ных МКОД (магистральные системы) и с множественными по­токами команд и данных МКМД (многомашинные и многопро­цессорные системы) - характеризуются двойками целых чисел (1,1), (1,п), (к, 1), (к,п) соответственно, где к > 1 и п > 1. Здесь, в отличие от предыдущего подхода, фактически указывается количество устройств управления, т. е. количество возможных независимо выполняемых программ, и, как и в предыдущем слу­чае, количество обрабатывающих процессоров (п = у), но при этом количество разрядов слов, обрабатываемых в параллель, не находит отражения.

Сохранить в определенной степени достоинства обоих под­ходов и устранить их недостатки можно путем комбинации обо­их подходов, хотя в этом случае несколько усложняется описа­ние.

Рассмотрим такой комбинированный подход. В качестве основных требований к описанию структур вычислительных систем при помощи числовых характеристик примем следую­щие. Описание должно охватывать широкий круг вычислитель­ных систем всех четырех классов ОКОД, ОКМД, МКОД и

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

В качестве основной цели описания примем количествен­ные характеристики параллельности обработки, при этом связи между процессорами и блоками памяти как таковые не будем включать в описание. Описание построим на базе различий меж­ду тремя основными уровнями обработки, которые рассмотре­ны ниже.

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

Конфигурация вычислительной системы может содержать одно или несколько устройств управления. Каждое устройство управления может осуществлять управление одним или несколь­кими арифметико-логическими устройствами. Наконец, каждое арифметико-логическое устройство обычно обрабатывает сразу группу разрядов (слово), хотя в ряде простейших случаев оно оперирует в каждый момент времени с отдельным разрядом. Таким образом, на каждом из уровней возможна как последова­тельная, так и параллельная обработка. В соответствии с этим описание структур систем можно представить в виде упорядо­ченной тройки: Ца) •= (к, й, м>), где а — наименование или тип вычислительной системы; к - количество устройств управления, т. е. наибольшее количество независимо и одновременно вы­полняемых программ в системе; й - количество арифметико-логических устройств, приходящихся на одно устройство управ­ления; м> - количество разрядов, содержимое которых обраба­тывается одновременно (параллельно) одним арифметико-ло­гическим устройством, т. е. длина слова процессора. Здесь ве­личины к и м> имеют тот же смысл, что и в описаниях для двух первых подходов, а величины V, к и й связаны соотношением V = к - й для случая, когда арифметико-логические устройства поде­лены поровну между устройствами управления. Последнее ус­ловие и возможность его выполнения неявно предполагаются при построении троек (к, с1, м>).

Рассмотрим теперь кратко вопросы соответствия описания структур вычислительных систем возможностям распараллели­вания вычислительных процессов.

Параллелизм независимых ветвей задачи (первый тип) со­стоит в том, что отдельные большие разделы задачи могут ре­шаться независимо друг от друга, лишь время от времени обме­ниваясь между собой результатами.

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

Параллелизм обработки данных о множестве объектов (тре­тий тип) состоит в том, что для задач, имеющих дело с массива­ми информации, нередко можно одновременно проводить по­чти идентичную обработку данных о большом числе одинако­вых или почти одинаковых объектов. В более общем случае в задаче используется естественный параллелизм, и она сразу фор­мулируется по возможности в наиболее параллельном виде.

Параллелизм независимых ветвей задачи находит свое ес­тественное воплощение при построении систем, у которых к > 1. Типичными представителями таких систем являются много­машинные и многопроцессорные системы. Параллелизму смеж­ных операций соответствует й > 1, т. е. командно-магистральная обработка. Наконец, параллелизму обработки данных о множе­стве объектов соответствует матричная, ассоциативная и подоб­ная им обработка. Следует отметить, что здесь речь идет о наи­большем соответствии отдельных типов параллелизма вы­числений отдельным типам структуры вычислительных систем, тогда как на практике задачи содержат в себе обычно в той или иной мере параллелизм различных типов, а вычислительные системы, в свою очередь, нередко совмещают в себе структуры более одного типа. Вместе с тем, если на вычислительной сис­теме, имеющей явно выраженный тип структуры, реализовать вычисления с явно выраженным типом параллелизма, не соответ­ствующим типу структуры вычислительной системы, то произ­водительность и загрузка оборудования последней снижаются, причем для некоторых сочетаний типов параллелизма и типов вычислительных систем это снижение может быть значитель­ным.

Можно отметить и другие случаи соответствия типов па­раллелизма вычислений и типов структур вычислительных сис­тем. Так, например, необходимость оперирования с многораз­рядными словами данных привела с самого начала к построе­нию арифметико-логических устройств с параллельной обра­боткой разрядов слов (м > 1). Возможность расчленения ариф­метических и некоторых других операций на этапы привела к построению систем с арифметико-магистральной обработкой (м' > 1, где м' - количество этапов обработки данных в арифмети­ческой магистрали). Наконец, кажущийся на первый взгляд не­сколько искусственным макромагистральный способ обработ­ки (к' > 1, где к' - количество одновременно работающих уст­ройств управления при макромагистральном режиме) также от­ражает достаточно распространенные виды параллельности вычислений.

Пусть требуется решить на многопроцессорной системе крупную задачу, причем ее решение содержит много циклов с большим объемом вычислений. Тогда работу процессоров можно организовать следующим образом. В течение любого, напри­мер, 1-го цикла накапливаются исходные данные для следующе­го цикла вычислений. В это же время первый процессор осуще­ствляет свою часть обработки данных, накопленных в (г - 1)-м цикле, и готовит массив данных для той части программы, ко­торая должна исполняться вторым процессором. Одновремен­но с этим второй процессор выполняет свою часть программы и использует при этом тот массив, который был подготовлен первым процессором в (I - 1)-м цикле по данным, принятым в (г - 2)-м цикле, и готовит массив данных для той части програм­мы, которая должна исполняться третьим процессором, и так далее. Ясно, что программа может быть распределена между большим количеством процессоров, при этом, как обычно для магистральной обработки, получение конечного результата от­стоит от момента получения исходных данных на все время про­хождения обработки через все процессоры магистрали, хотя сред­няя скорость обработки может быть близкой к суммарной ско­рости работы процессоров организованной магистрали.

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

Возможность реализации магистральной обработки на раз­личных уровнях вычислительной системы говорит, с одной сто­роны, об универсальности принципа магистральной обработки и, с другой стороны, о том, что вряд ли будут развиваться «чисто магистральные системы». Действительно, примеры реальных магистральных систем говорят скорее о том, что в этих систе­мах сделан акцент на магистральную обработку, но в целом они являются все же системами с комбинированной структурой. В этой связи следует напомнить об определенной условности клас­са МКОД как самостоятельного класса вычислительных систем, к которому и только к которому могут быть отнесены те или иные вычислительные системы.