Повышение производительности вычислительных систем предусматривает прежде всего достижение высокой скорости исполнения программ. Такая цель соответствует как требованиям пользователей, заинтересованных в наиболее быстром получении результатов счета, так и тому обстоятельству, что быстродействие определяет общее количество вычислительной работы, которую способна выполнить система за данный отрезок времени.
В ряде прикладных областей повышение скорости вычислений играет большую роль, так как время решения задач на стандартных ЭВМ обычно оказывается слишком большим с точки зрения практического использования результатов. Разумеется, стоимостные факторы и в этом случае имеют существенное значение, однако более важным становится обеспечение самой возможности получения результатов за приемлемое время при минимальной (насколько это удается) стоимости вычислений.
Именно в таких прикладных областях и требуются супер ЭВМ.
Основными факторами, определяющими высокую стоимость супер ВМ, являются:
1. Большие затраты на конструирование, обусловленные сложностью оборудования и относительно малым серийным выпуском.
2. Высокая стоимость аппаратуры, для создания которой требуются новые технологии, способные обеспечить предельные для нынешнего уровня развития техники показатели. На стоимость аппаратуры влияют также увеличение числа логических элементов, количества выделяемой теплоты в единице объема и другие подобные факторы.
3. Дорогостоящее программное обеспечение, включающее специальные средства, которые позволяют реализовать потенциально высокое быстродействие систем.
Область применения методов достижения высокого быстродействия охватывает все уровни создания систем.
На самом нижнем уровне - это передовая технология конструирования и изготовления быстродействующих элементов и плат с высокой плотностью монтажа. В этой сфере лежит наиболее прямой путь к увеличению скорости, поскольку если бы, например, удалось все задержки в машине сократить в К раз, то это привело бы к увеличению быстродействия в такое же число раз. В последние годы были достигнуты огромные успехи в создании быстродействующей элементной базы и адекватных методов монтажа, и ожидается дальнейший прогресс, основанный на использовании новых технологий и снижения размеров устройств. Этот путь, однако, имеет ряд ограничений:
1. Для определенного уровня технологии обеспечивается определенный уровень быстродействия элементной базы: как только он оказался достигнутым, дальнейшее увеличение быстродействия сопровождается огромными расходами вплоть до достижения того порога, за которым уже нет технологий, обеспечивающих большее быстродействие.
2. Более быстродействующие элементы обычно имеют меньшую плотность монтажа, что, в свою очередь, требуют более длинных соединительных кабелей между платами и, следовательно, приводит к увеличению задержек (за счет соединений) и уменьшению выигрыша в производительности.
3. Более быстродействующие элементы обычно рассеивают больше тепла. Поэтому требуются специальные меры по теплоотводу, что еще больше снижает плотность монтажа и, следовательно, быстродействие. Для того чтобы избежать дополнительных расходов, задержек за счет соединений и увеличения рассеяния тепла, целесообразно, по-видимому, применять быстродействующие элементы не везде, а только в тех частях, которые соответствуют <узким местам>. Например, чтобы увеличить скорость сложения, можно применить высокоскоростные схемы только в цепи переноса. Однако путь увеличения быстродействия элементов имеет свои ограничения и может наступить момент, когда станет необходимым или более целесообразным использовать для реализации операции сложения другие способы.
Следующий шаг в направлении повышения быстродействия предполагает уменьшение числа логических уровней при реализации комбинационных схем. Хорошо известно, что любая функция может быть реализована с помощью схемы с двумя логическими уровнями. Однако в сложных системах это приводит к появлению громоздких устройств, содержащих очень большое число вентилей с чрезмерными коэффициентами соединений по входу и выходу. Следовательно, на данном этапе конструкторская задача состоит в создании схем с малым числом логических уровней, которое бы удовлетворяло ограничениям по количеству вентилей и их коэффициентам соединений по входу и выходу. В настоящее время разработаны принципы построения схем, требующих меньшее число вентилей и обладающих меньшими задержками, и предложены методы их создания. В силу присущих ограничений только один этот путь, как правило, не может дать требуемого увеличения производительности.
Следующий уровень охватывает способы реализации основных операций, таких как сложение, умножение и деление. Для того чтобы увеличить cкорость выполнения этих операций, необходимо использовать алгоритмы, которые приводили бы к быстродействующим комбинационным схемам и требовали небольшого числа циклов. В результате успешных исследований и разработок в области арифметических устройств создан ряд алгоритмов, которые могут быть использованы в условиях тех или иных ограничений. С точки зрения применения высокопроизводительных вычислительных машин для научных расчетов особый интерес представляет реализация принципа опережающего просмотра при операциях сложения, сложения с сохраняемым переносом и записи при матричном умножении. Сюда же относятся проблемы использования избыточности при делении и реализация деления в виде цепочки операций умножения.
Далее, быстродействие вычислительных систем может быть повышено за счет реализации аппаратными или программно-аппаратными средствами встроенных сложных команд соответствующих тем или иным функциям, встречающимся во многих практических вычислениях. К таким функциям относятся, например, корень квадратный, сложение векторов, умножение матриц и быстрое преобразование Фурье. Указанные средства позволяют сократить число команд в программах и создают предпосылки для более эффективного использования машинных ресурсов (например, конвейеризованных арифметических устройств). При решении некоторых задач получаемый выигрыш может быть весьма существенным, что особенно хорошо видно на примере рассматриваемых ниже векторных ЭВМ, в которых основную роль играют векторные команды. С другой стороны, непросто определить такие сложные команды, которые бы достаточно часто использовались в широком классе прикладных программ. В то же время исследования процессов выполнения большого числа программ из разных прикладных областей показывают, что существует явное смещение частот использования в направлении небольшого набора простых команд. Этот факт послужил основой для развития подхода, при котором из множества команд выделяется небольшое подмножество простых и часто используемых команд, подлежащих оптимизации. В настоящее время уже разработан ряд экспериментальных и промышленных образцов процессоров, использующих принцип оптимизации сокращенного набора команд. Влияние этого подхода на прогресс в области высокоскоростных вычислений нуждается в оценке.
Еще один резерв, используемый для повышения эффективности работы процессора,- это сокращение временных затрат при обращениях к памяти. Обычные подходы здесь состоят, во-первых, в расширении путей доступа за счет разбиения памяти на модули, обращение к которым может
осуществляться одновременно; во-вторых, в применении дополнительной сверхбыстродействующей памяти (кэш-памяти) и, наконец, в увеличении числа внутренних регистров в процессоре. Как показано ниже, использование всех перечисленных способов тесно связано с организацией систем. Длительность исполнения одной команды может быть уменьшена за счет временного перекрытия различных ее фаз. К примеру, вычисление адреса, по которому нужно записать результат, может быть выполнено одновременно с самой операцией. Этот подход требует, разумеется, дополнительного оборудования, поскольку модули памяти не могут быть одновременно задействованы в совмещаемых фазах. Увеличение быстродействия, которое можно при этом достичь, зависит от формата (состава) команды, поскольку именно им определяется наличие независимых фаз.
Наконец, мы подходим к структуре алгоритма, по которому работает система. На этом уровне основной подход к повышению быстродействия состоит в том, чтобы выполнять одновременно несколько команд. Этот подход отличается от того, который реализован в обычной фон-неймановской машине, когда команды исполняются строго последовательно одна за другой. Параллельный подход приводит к различным вариантам архитектуры в зависимости от способа, по которому осуществляется задание очередности следования команд и управление их исполнением. Распараллеливание позволяет значительно увеличить производительность систем при решении широкого класса прикладных задач.
Перечисленные подходы касаются аппаратуры, логической организации и архитектуры систем. Усилия, затрачиваемые в этих областях, имеют своей целью обеспечение необходимого ускорения вычислений на программно-алгоритмическом уровне. На этом уровне должны использоваться либо специальные языки программирования, предоставляющие средства для явного описания параллелизма, либо методы выявления параллелизма в последовательных программах. Кроме того, алгоритм должен обладать внутренним параллелизмом, соответствующим особенностям данной архитектуры. Использование неадекватных алгоритмов и языков способно практически свести на нет возможности для реализации высокоскоростных вычислений, заложенные в архитектуре.
Многомашинные и многопроцессорные вычислительные системы (комплексы). Определение, типы связей и структурная организация. Особенности программного обеспечения. Примеры отечественных и зарубежных вычислительных комплексов.
Вычислительная техника в своем развитии по пути повышения быстродействия ЭВМ приблизилась к физическим пределам. Время переключения электронных схем достигло долей наносекунды, а скорость распространения сигналов в линиях, связывающих элементы и узлы машины, ограничена значением 30 см/нс (скоростью света). Поэтому дальнейшее уменьшение времени переключения электронных схем не позволит существенно повысить производительность ЭВМ. В этих условиях требования практики (сложные физико-технические расчеты, многомерные экономико-математические модели и другие задачи) по дальнейшему повышению быстродействия ЭВМ могут быть удовлетворены только путем распространения принципа параллелизма на сами устройства обработки информации и создания многомашинных и многопроцессорных (мультипроцессорных) вычислительных систем. Такие системы позволяют производить распараллеливание во времени выполнения программы или параллельное выполнение нескольких программ.
В настоящее время исключительно важное значение приобрела проблема обеспечения высокой надежности и готовности вычислительных систем, работающих в составе различных АСУ и АСУ ТП, особенно при работе, в режиме реального времени. Эта проблема решается на основе использования принципа избыточности, который ориентирует также на построение многомашинных или многопроцессорных систем (комплексов). Появление дешевых и небольших по размерам микропроцессоров и микро-ЭВМ облегчило построение и расширило область применения многопроцессорных и многомашинных ВС разного назначения
Различие понятий многомашинной и многопроцессорной ВС поясняет рис.6.1. Многомашинная ВС (ММС) содержит несколько ЭВМ, каждая из которых имеет свою ОП и работает под управлением своей операционной системы, а также средства обмена информацией между машинами. Реализация обмена информацией происходит, в конечном счете, путем взаимодействия операционных систем машин между собой. Это ухудшает динамические характеристики процессов межмашинного обмена данными. Применение многомашинных систем позволяет повысить надежность вычислительных комплексов. При отказе в одной машине обработку данных может продолжать другая машина комплекса. Однако можно заметить, что при этом оборудование комплекса недостаточно эффективно используется для этой цели. Достаточно в системе, изображенной на рис.6.1,а в каждой ЭВМ выйти из строя по одному устройству (даже разных типов), как вся система становится неработоспособной.
Этих недостатков лишены многопроцессорные системы (МПС). В таких системах (рис. 6.1,б) процессоры обретают статус рядовых агрегатов вычислительной системы, которые подобно другим агрегатам, таким, как модули памяти, каналы, периферийные устройства, включаются в состав системы в нужном количестве.
Вычислительная система называется многопроцессорной, если она содержит несколько процессоров, работающих с общей ОП (общее поле оперативной памяти) и управляется одной общей операционной системой. Часто в МПС организуется общее поле внешней памяти.
Под общим полем понимается равнодоступность устройств. Так, общее поле памяти означает, что все модули ОП доступны всем процессорам и каналам ввода-вывода (или всем периферийным устройствам в случае наличия общего интерфейса); общее поле ВЗУ означает, что образующие его устройства доступны любому процессору и каналу.
В МПС по сравнению с ММС достигается более быстрый обмен информацией между процессорами и поэтому может быть получена более высокая производительность, более быстрая реакция на ситуации, возникающие внутри системы и в ее внешней среде, и более высокие надежность и живучесть, так как система сохраняет работоспособность, пока работоспособны хотя бы по одному модулю каждого типа устройств.
Многопроцессорные системы представляют собой основной путь построения ВС сверхвысокой производительности. При создании таких ВС возникает много сложных проблем, к которым в первую очередь следует отнести распараллеливание вычислительного процесса (программ) для эффективной загрузки процессоров системы, преодоление конфликтов при попытках нескольких процессоров использовать один и тот же ресурс системы (например, некоторый модуль памяти) и уменьшение влияния конфликтов на производительность системы, осуществление быстродействующих экономичных по аппаратурным затратам межмодульных связей. Указанные вопросы необходимо учитывать при выборе структуры МПС.
На основе многопроцессорности и модульного принципа построения других устройств системы возможно создание отказоустойчивых систем, или, другими словами, систем повышенной живучести.
Однако построение многомашинных систем из серийно выпускаемых ЭВМ с их стандартными операционными системами значительно проще, чем построение МПС, требующих преодоления определенных трудностей, возникающих при реализации общего поля памяти, и, главное, трудоемкой разработки специальной операционной системы.
Многомашинные и многопроцессорные системы могут быть однородными и неоднородными. Однородные системы содержат однотипные ЭВМ или процессоры. Неоднородные ММС состоят из ЭВМ различного типа, а в неоднородных МПС используются различные специализированные процессоры, например процессоры для операций с плавающей запятой, для обработки десятичных чисел, процессор, реализующий функции операционной системы, процессор для матричных задач и др.
Многопроцессорные системы и ММС могут иметь одноуровневую или иерархическую (многоуровневую) структуру. Обычно менее мощная машина (машина-сателлит) берет на себя ввод информации с различных терминалов и ее предварительную обработку, разгружая от этих сравнительно простых процедур основную, более мощную ЭВМ, чем достигается увеличение общей производительности (пропускной способности) комплекса. В качестве машин-сателлитов используют малые или микро-ЭВМ.
Важной структурной особенностью рассматриваемых ВС является способ организации связей между устройствами (модулями) системы. Он непосредственно влияет на быстроту обмена информацией между модулями, а следовательно, на производительность системы, быстроту ее реакции на поступающие запросы, приспособленность к изменениям конфигурации и, наконец, размеры аппаратурных затрат на осуществление межмодульных связей. В частности, от организации межмодульных связей зависят частота возникновения конфликтов при обращении процессоров к одним и тем же ресурсам (в первую очередь модулям памяти) и потери производительности из-за конфликтов.
Используются следующие способы организации межмодульных (межустройственных) связей:
· регулярные связи между модулями;
· многоуровневые связи, соответствующие иерархии интерфейсов ЭВМ;
· многовходовые модули (в частности, модули памяти);
· коммутатор межмодульных связей (“Эльбрус” Рис.6.2);
· общая шина (“СМ ЭВМ” Рис.6.3).
Принципы организации МПС и ММС существенно отличаются в зависимости от их назначения. Поэтому целесообразно различать:
· ВС, ориентированные в первую очередь на достижение сверхвысокой производительности;
· ВС, ориентированные в первую очередь на повышение надежности и живучести.