Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6. Вычислительные системы.doc
Скачиваний:
3
Добавлен:
22.07.2019
Размер:
294.4 Кб
Скачать

Лекция 6. Вычислительные системы

параллелизм, многопроцессорные вс, многомашинные вс, классификация, вс, архитектура, openmp, mpi

Принципы технической реализации модели коллектива вычислителей

 

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

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

 

Модульность вычислительной системы обеспечивает:

  1. возможность использования любого модуля заданного типа для выполнения любого соответствующего ему задания пользователя;

  2. простоту замены одного модуля на другой однотипный;

  3. масштабируемость, т.е. возможность увеличения или уменьшения количества модулей без коренной реконфигурации связей между остальными модулями;

  4. открытость системы для модернизации, исключающую ее моральное старение.

При конструировании вычислительных систем с массовым параллелизмом достаточно ограничиться единственным модулем–вычислителем, который бы обладал вычислительной и соединительной полнотой. Следовательно, модуль должен иметь средства автономного управления, располагать арифметико-логическим устройством и памятью и содержать локальный коммутатор ­– схему   для   связи   с   другими   модулями. На практике принято такой модуль–вычислитель называть либо элементарным процессором (ЭП), либо элементарной машиной (ЭМ). При этом считается, что ЭП это композиция из процессора и локального коммутатора. Разрядность таких ЭП в различных вычислительных системах колеблется от 1 до 64. Под элементарной машиной понимается архитектурно более развитая композиция из ЭВМ и локального коммутатора.

Близкодействие – принцип построения вычислительных систем, обусловливающий такую организацию информационных взаимодействий между модулями–вычислителями, при которой каждый из них может непосредственно (без “посредников”) обмениваться информацией с весьма ограниченной частью модулей-вычислителей. Следовательно, структура ВС позволяет осуществлять информационные взаимодействия между удаленными вершинами-вычислителями лишь с помощью промежуточных вершин-вычислителей, передающих информацию от “точки к точке” (point-to-point). Удаленными считаются все те вершины в структуре ВС, расстояние между которыми более 1 (число ребер между которыми более единицы).

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

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

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

strong>Децентрализованность управления ВС достигается, если в системе нет выделенного модуля, который функционирует как единый для всей системы центр управления. Децентрализованное управление системой основано на совместной работе всех исправных модулей системы, направленной на принятие решений, доставляющих оптимум выбранной целевой функции. Выполняя свою часть работы по выработке согласованного решения об управлении системой, каждый модуль пользуется только локальной информацией о системе.

Децентрализованное управление системой (в отличие от централизованного) позволяет:

  1. достичь живучести ВС, т. е. ее способности продолжать работу при отказах модулей (в том числе и тех, которые предназначены для принятия решений);

  2. избежать очередей при обслуживании “заявок” на управление.

 

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

 

 

Архитектурные свойства вычислительных систем

 

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

 

Масштабируемость (Scalability) вычислительных систем

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

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

Универсальность ВС. Вычислительные системы алгоритмически и структурно универсальны.

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

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

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

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

Структурная универсальность позволяет говорить и о специализированности ВС: для каждой задачи допустима автоматическая настройка такой конфигурации из ресурсов ВС, которая наиболее адекватна алгоритму решения задачи. Итак, вычислительная система – это средство, в котором диалектически сочетаются противоположные свойства универсальности и специализированности.

Производительность (Performance) вычислительных систем

В отличие от ЭВМ, построенных на основе модели вычислителя, ВС не имеют принципиальных ограничений в наращивании производительности. Рост производительности в них достигается за счёт не только повышения физического быстродействия микроэлектронных элементов, а главным образом увеличения числа вычислителей. Следует подчеркнуть, что благодаря свойству однородности наращиваемость ВС осуществляется простым подключением дополнительных вычислений без конструктивных изменений первоначального состава системы. При этом достигается простота настройки программного обеспечения на заданное число вычислителей в системе. На основании последнего обеспечивается совместимость ВС различной производительности.

 

Реконфигурируемость (Programmability) вычислительных систем

Структурная и функциональная гибкости ВС вытекают из широких возможностей систем по статической и динамической реконфигурации. Статическая реконфигурация ВС обеспечивается: варьированием числа вычислителей, их структуры и состава; выбором для вычислителей числа полюсов для связи c другими вычислителями; возможностью построения структур в виде графов, относящихся к различным классам; допустимостью применения в качестве связей каналов различных типов, различной физической природы и различной протяжённости и т.п. Благодаря приспособленности ВС к статической реконфигурации достигается адаптация системы под область применения на этапе её формирования.

 

Динамическая реконфигурация ВС достигается возможностью образования в системах таких подсистем, структуры и функциональные организации которых адекватны входной мультипрограммной ситуации и структурам решаемых задач. Следовательно, способность ВС к динамической реконфигурации приводит к её высокой универсальности, при которой достигается заданный уровень производительности при решении широкого класса задач, реализуются известные в вычислительной технике режимы функционирования (коллективное пользование, пакетная обработка и др.), способы управления вычислительным процессом (централизованный, децентрализованный и др.), структурные схемы (изолированные вычислительные машины, системы из нескольких процессоров и одной ЭВМ, системы из одной ЭВМ и нескольких устройств памяти и т.п.) и способы обработки информации (конвейерный, матричный, распределённый и др.).

 

Надёжность и живучесть вычислительных систем

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

 

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

 

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

 

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

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

 

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

 

Самоконтроль и самодиагностика (Self-testing and Self-diagnostics)  вычислительных систем

Организация надёжного и живучего функционирования вычислительных систем связана с контролем правильности их работы и с локализацией неисправностей в них. В системах–коллективах вычислителей может быть применён нетрадиционный подход к контролю и диагностике:

  1. в качестве контрольно-диагностического ядра ВС могут быть использованы любые исправные вычислители и в пределе ядро любого произвольно выбранного вычислителя,

  2. выбор ядра системы и определение её исправности могут быть произведены автоматически ( с помощью средств ВС).

Предлагаемый подход позволяет говорить о самоконтроле и самодиагностике ВС. Заключение об исправности или неисправности отдельных вычислителей системы принимается коллективно всеми вычислителями на основе сопоставления их индивидуальных заключений об исправности соседних с ними вычислителей.

 

Технико-экономическая эффективность (Technical-economical Efficiency) вычислительных систем 

Конструктивная однородность позволяет резко сократить сроки разработки и изготовления систем, приводит к высокой технологичности производства, упрощает и статическую, и динамическую реконфигурации ВС, облегчает их техническую эксплуатацию. Она существенно упрощает процесс организации взаимодействий между вычислителями ВС и облегчает создание программного обеспечения. Полнота воплощения трёх основных принципов модели коллектива вычислителей позволяет заметно ослабить зависимость между ростом производительности ВС и увеличением трудоёмкости их проектирования и изготовления, а также создания системного программного обеспечения. Они открывают возможность построения высокопроизводительных экономически приемлемых вычислительных систем при существующей физико-технологической базе. Более того, возможность неограниченно наращивать производительность позволяет применить для построения ВС микроэлектронные элементы с быстродействием, далеким от предельного, и следовательно, обладающие более высокой надежностью и меньшим энергопотреблением. В свою очередь, последнее приводит к снижению расходов на установку искусственного климата и содержание эксплуатационного персонала ВС.

 

Параллельная обработка как основа высокопроизводительных вычислений. Уровни организации параллелизма: уровень заданий, программ и команд

 

Имеются следующие способы повышения производительности ЭВМ при обработке информации:

а) совершенствование алгоритмов решения задач;

б) оптимизация программ (создание эффективных систем программирования);

в) повышение быстродействия элементной базы ЭВМ;

г) модификация структуры процессора (улучшение алгоритмов выполнения машинных операций);

д) конвейерно-параллельная обработка информации.

 

Попробуем разобраться, какой из факторов является решающим в достижении современных фантастических показателей производительности. Для разрешения этого вопроса обратимся к историческим фактам. Известно, что на компьютере EDSAC (1949 г.), имевшего время такта 2мкс, можно было выполнить 2*n арифметических операций за 18*n мс, то есть в среднем 100 арифметических операций в секунду. Сравним с современным суперкомпьютером CRAY C90: время такта приблизительно 4нс, а пиковая производительность около 1 миллиарда арифметических операций в секунду.

 

Компьютер

Время такта(с)

Скорость (оп/с)

EDSAC (1949 г.)

2*10-6 с

102 оп/с

CRAY C90 (1991 г.)

4*10-9 с

109 оп/с

 

Производительность компьютеров за этот период выросла в приблизительно в десять миллионов раз. Уменьшение времени такта является прямым способом увеличением производительности, однако эта составляющая (с 2мкс до 4нс) в общем объеме дает вклад лишь в 500 раз. Откуда же взялось остальное? Ответ очевиден - использование новых решений в архитектуре компьютеров, среди которых основное место занимает принцип параллельной обработки данных.

Данный принцип, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: конвейерность и собственно параллельность.

 

Параллельная обработка. Если некое устройство выполняет одну операцию за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если предположить, что есть пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести единиц времени. Аналогично система из N устройств ту же работу выполнит за 1000/N единиц времени.

 

Конвейерная обработка. Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за одной до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.

 

Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).

 

Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! В чем же дело? Ответ прост, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость.

 

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

Развитие процессоростроения также ориентировано на распараллеливание операций, т.е. на выполнение процессором большего числа операций за такт. Ключевыми ступенями развития архитектуры процессоров стали гиперконвейеризация, суперскалярность, неупорядоченная модель обработки, векторное процессирование (технология SIMD), архитектура VLIW. Все ступени были ориентированы на повышение степени параллелизма исполнения.

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

 

Распараллеливание операций – перспективный путь повышения производительности вычислений. Согласно закону Мура число транзисторов экспоненциально растёт, что позволяет в настоящее время включать в состав CPU большое количество исполнительных устройств самого разного назначения. Прошли времена, когда функционирование ЭВМ подчинялось принципам фон Неймана.

 

В 70-е годы стал активно применяться принцип конвейеризации вычислений. Сейчас конвейер Intel Pentium 4 состоит из 20 ступеней. Такое распараллеливание на микроуровне – первый шаг на пути эволюции процессоров. На принципах конвейеризации базируются и внешние устройства. Например, динамическая память (организация чередования банков) или внешняя память (организация RAID).

 

Но число транзисторов на чипе росло. Использование микроуровневого параллелизма позволяло лишь уменьшать CPI (Cycles Per Instruction - число тактов, необходимых для выполнения одной инструкции), так как миллионы транзисторов при выполнении одиночной инструкции простаивали. CPI = общее количество тактов / число выполненных команд.

 

 

Уровни параллелизма

 

На следующем этапе эволюции в 80-е годы стали использовать параллелизм уровня команд посредством размещения в CPU сразу нескольких конвейеров. Такие суперскалярные CPU позволяли достигать CPI<1. Параллелизм уровня инструкций (ILP) породил неупорядоченную модель обработки, динамическое планирование, станции резервации и т.д. От CPI перешли к IPC (InstructionsPerClock). Но ILP ограничен алгоритмом исполняемой программы. Кроме того, при увеличении количества ALU сложность оборудования экспоненциально растёт, увеличивается количество горизонтальных и вертикальных потерь в слотах выдачи. Параллелизм уровня инструкций исчерпал свои резервы, а тенденции Мура позволили процессоростроителям осваивать более высокие уровни параллелизма. Современные методики повышения ILP основаны на использовании процессоров класса SIMD. Это векторное процессирование, матричные процессоры, архитектура VLIW.

 

Параллелизм уровня потоков и уровня заданий применяется в процессорах класса MIMD.

Параллелизм всех уровней свойственен не только процессорам общего назначения (GPP), но и процессорам специального назначения (ASP (Application-Specific Processor), DSP (Digital Signal Processor)).

 

Иногда классифицируют параллелизм по степени гранулярности как отношение объёма вычислений к объёму коммуникаций. Различают мелкозернистый, среднезернистый и крупнозернистый параллелизм. Мелкозернистый параллелизм обеспечивает сам CPU, но компилятор может и должен ему помочь для обеспечения большего IPC. Среднезернистый параллелизм – прерогатива программиста, которому необходимо разрабатывать многопоточные алгоритмы. Здесь роль компилятора заключается в выборе оптимальной последовательности инструкций (с большим IPC) посредством различных методик (например, символическое разворачивание циклов). Крупнозернистый параллелизм обеспечивает ОС.

 

Системы (языки) параллельного программирования

 

В рамках параллельной модели программирования существуют различные подходы, ориентированные на разные архитектуры высокопроизводительных вычислительных систем и различные инструментальные средства. Перечислим некоторые из них.

 

Модель передачи сообщений

Основные особенности данного подхода:

  • Программа порождает несколько задач.

  • Каждой задаче присваивается свой уникальный идентификатор.

  • Взаимодействие осуществляется посредством отправки и приема сообщений.

  • Новые задачи могут создаваться во время выполнения параллельной программы, несколько задач могут выполняться на одном процессоре.

 

Основными инструментами программирования являются специализированные библиотеки

(MPI - Message Passing Interface, PVM - Parallel Virtual Machines).

Модель параллелизма данных

 

Основные особенности данного подхода:

  • Одна операция применяется к множеству элементов структуры данных. Программа содержит последовательность таких операций.

  • "Зернистость" вычислений мала.

  • Программист должен указать транслятору, как данные следует распределить между задачами.

При программировании на основе параллелизма данных часто используются специализированные языки или надстройки над языками . DVM Fortran, HPF (High Perfomance Fortran) и другие.

 

Модель общей памяти

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

Это упрощает программирование. Вместе с тем особое внимание приходится уделять соблюдению детерминизма, таким явлениям, как «гонки за данными» и т. д.

Начиная с версии 2005 в Visual Studio входит поддержка OpenMP. OpenMP – набор директив компилятору (прагм), библиотечных функций и переменных окружения для поддержки парадигмы параллельного программирования для систем с общей памятью.

 

Способы классификации ВС: по назначению, по типу устройств и комплексирования, по типу ЭВМ или процессоров, по степени территориальной разобщенности, по методам управления элементами и по режиму работы

 

1. По назначению (универсальные и специализированные)

А) Универсальные ВС предназначаются для решения самых различных задач.

Б) Специализированные системы ориентированы на решение узкого класса задач.

 

Специализация ВС может устанавливаться различными средствами:

1) структурой системы (количеством параллельно работающих элементов, связи между ними и т.д.). Структура может быть ориентирована на определенные виды обработки информации: матричные вычисления, решение алгебраических, дифференциальных и интегральных уравнений и т.п. (Из практики разработки ВС: чем выше производительность, тем уже класс эффективно решаемых ВС задач);

­2) включением в состав ВС специального оборудования и специальных пакетов обслуживания техники.

 

2. По типу (многомашинные и многопроцессорные) (ниже)

 

3. По типу эвм или процессоров (однородные и неоднородные)

 

Однородные системы предполагают комплексирование однотипных ЭВМ (процессоров),

неоднородные — разнотипных. В однородных системах значительно упрощается разработка и обслуживание технических и программных (в основном ОС) средств. В них обеспечивается возможность стандартизации и унификации соединений и процедур взаимодействия элементов системы. Упрощается обслуживание систем, облегчается модернизация и их развитие. Вместе с тем существуют и неоднородные ВС, в которых комплексируемые элементы очень сильно отличаются по своим техническим и функциональным характеристикам. Обычно это связано с необходимостью параллельного выполнения многофункциональной обработки. Так, при построении ММС, обслуживающих каналы связи, целесообразно объединять в комплекс связные, коммуникационные машины и машины обработки данных. В таких системах коммуникационные ЭВМ выполняют функции связи, контроля получаемой и передаваемой информации, формирование пакетов задач и т.д. ЭВМ обработки данных не занимаются не свойственными им работами по обеспечению взаимодействия в сети, а все их ресурсы переключаются на обработку данных. Неоднородные системы находят применение и МПС. Многие ЭВМ, в том числе и ПЭВМ, могут использовать сопроцессоры: десятичной арифметики, матричные и т.п.

4. По степени территориальной разобщенности (сосредоточенные и распределенные)

 

Обычно такое деление касается только ММС. Многопроцессорные системы относятся к системам совмещенного типа. Более того, учитывая успехи микроэлектроники, это совмещение может быть очень глубоким. При появлении новых СБИС появляется возможность иметь в одном кристалле несколько параллельно работающих процессоров.

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

 

5. По методам управления элементами (централизованные, децентрализованные и со смешанным управлением).

 

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

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

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