Remkomplekty.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Многопроцессорная архитектура схема

Архитектуры многопроцессорных вычислительных систем;

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

Архитектура простых многопроцессорных систем выполняется по схеме с общей шиной. Два или более процессоров и один или несколько модулей памяти размещены на общей шине. Каждый процессор, для обмена с памятью, проверяет свободна ли шина и если она свободна он занимает её. Если шина занята, процессор ждёт, пока она освободится. При увеличении числа процессоров производительность системы будет ограничена пропускной способностью шины. Чтобы решить эту проблему каждый процессор снабжается собственной локальной памятью, как показано на рис. 2.13, куда помещаются тексты исполняемых программ и локальные переменные, обрабатываемые данным процессором. Общее запоминающее устройство используется для хранения общих переменных и общего системного программного обеспечения. При такой организации нагрузка на общую шину значительно снижается.

Один из процессоров выделяется для управления всей системой. Он распределяет задания на исполнение программ между процессорами и управляет работой общей шины.

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

Магистральный принцип является самым распространённым при построении высокопроизводительных вычислительных систем. Процессор такой системы имеет несколько функциональных обрабатывающих устройств, выполняющих арифметические и логические операции, и быструю регистровую память для хранения обрабатываемых данных. Данные, считанные из памяти, размещаются в регистрах и из них загружаются в обрабатывающие устройства. Результаты вычислений помещаются в регистры и используются, как исходные данные, для дальнейших вычислений. Таким образом, получается конвейер преобразования данных: регистры – обрабатывающие устройства – регистры – … . Архитектура магистрального суперкомпьютера приведена на рис. 2.14. Число функциональных устройств, показанных на рисунке, равно шести, «Сложение», «Умножение» и т.д., однако, в реальных системах их количество может быть иным. Устройство планирования последовательности выполнения команд распределяет данные, хранящиеся в регистрах, на функциональные устройства и производит запись результатов снова в регистры. Конечные результаты вычислений записываются в общее запоминающее устройство.

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

Многопроцессорная архитектура

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

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

Рис. 9.1. Многопроцессорная система управления движением транспорта

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

9.2. Архитектура клиент/сервер

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

Рис. 9.2. Система клиент/сервер

В системе между процессами и процессорами не обязательно должно соблюдаться отношение «один к одному». На рис. 9.3 показана физическая архитектура системы, которая состоит из шести клиентских машин и двух серверов. На них запускаются клиентские и серверные процессы, изображенные на рис. 9.2. В общем случае, говоря о клиентах и серверах, подразумевают скорее логические процессы, чем физические машины, на которых выполняются эти процессы.

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

Самой простой архитектурой клиент/сервер является двухуровневая, в которой приложение состоит из сервера (или множества идентичных серверов) и группы клиентов. Существует два вида такой архитектуры (рис. 9.5).

1. Модель тонкого клиента. В этой модели вся работа приложения и управление данными выполняются на сервере. На клиентской машине запускается только ПО уровня представления.

2. Модель толстого клиента. В этой модели сервер только управляет данными. На клиентской машине реализована работа приложения и взаимодействие с пользователем системы.

Рис. 9.3. Компьютеры в сети клиент/сервер

Рис. 9.4. Уровни программного приложения

Тонкий клиент двухуровневой архитектуры – самый простой способ перевода существующих централизованных систем в архитектуру клиент/сервер. Пользовательский интерфейс в этих системах «переселяется» на персональный компьютер, а само программное приложение выполняет функции сервера, т.е. выполняет все процессы приложения и управляет данными. Модель тонкого клиента можно также реализовать там, где клиенты представляют собой обычные сетевые устройства, а не персональные компьютеры или рабочие станции. Сетевые устройства запускают Internet-браузер и пользовательский интерфейс, реализованный внутри системы.

Рис. 9.5. Модели тонкого и толстого клиентов

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

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

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

Рис. 9.6. Система клиент/сервер для сети банкоматов

Читать еще:  Отключить gpu ускорение

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

Появление языка Java и загружаемых аплетов позволили разрабатывать модели клиент/сервер, которые находятся где-то посередине между моделями тонкого и толстого клиента. Часть программ, составляющих приложение, можно загружать на клиентской машине как аплеты Java и тем самым разгрузить сервер. Интерфейс пользователя строится посредством Web-броузера, который запускает аплеты Java. Однако Web-броузеры от различных производителей и даже различные версии Web-броузеров от одного производителя не всегда выполняются одинаково. Более ранние версии броузеров на старых машинах не всегда могут запустить аплеты Java. Следовательно, такой подход можно использовать только тогда, когда вы уверены, что у всех пользователей системы установлены броузеры, совместимые с Java.

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

Рис. 9.7. Трехуровневая архитектура клиент/сервер

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

Банковскую систему, использующую Internet-сервисы, можно реализовать с помощью трехуровневой архитектуры клиент/сервер. База данных расчетов (обычно расположенная на главном компьютере) предоставляет сервисы управления данными, Web-сервер поддерживает сервисы приложения, например средства перевода денег, генерацию отчетов, оплату счетов и др. А компьютер пользователя с Internet-броузером является клиентом. Как показано на рис. 9.8, эта система масштабируема, так как в нее относительно просто добавить новые Web-серверы при увеличении количества клиентов.

Использование трехуровневой архитектуры в этом примере позволило оптимизировать передачу данных между Web-сервером и сервером базы данных. Взаимодействие между этими системами не обязательно строить на стандартах Internet, можно использовать более быстрые коммуникационные протоколы низкого уровня. Обычно информацию от базы данных обрабатывает эффективное промежуточное ПО, которое поддерживает запросы к базе данных на языке структурированных запросов SQL.

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

Рис. 9.8. Распределенная архитектура банковской системы с использованием Internet-сервисов

Разработчики архитектур клиент/сервер, выбирая наиболее подходящую, должны учитывать ряд факторов. В табл. 9.2 перечислены различные случаи применения архитектуры клиент/сервер.

Таблица 9.2. Применение разных типов архитектуры клиент/сервер

Архитектура персонального компьютера

Архитектура персонального компьютера (ПК) включает в себя структуру, которая отражает состав ПК, и программное обеспечение.

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

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

Основным принципом построения всех современных ПК является программное управление.

Классическая архитектура фон Неймана

В $1946$ году американские математики Джон фон Нейман, Герман Голдштейн и Артур Бёркс в совместной статье изложили новые принципы построения и функционирования ЭВМ. На основе этих принципов производилось $1$-е и $2$-е поколение компьютеров. В следующих поколениях происходили некоторые изменения, но принципы фон Неймана (как они были названы) сохранялись.

Основные принципы фон Неймана:

  1. Использование двоичной системы счисления в ПК, в которой устройствам гораздо проще выполнять арифметико-логические операции, чем в десятичной.
  2. Программное управление ПК. Работа ПК управляется программой, которая состоит из набора команд, выполняющихся последовательно одна за другой. Создание машины с хранимой в памяти программой положило начало программированию.
  3. Данные и программы хранятся в памяти ПК. Команды и данные кодируются одинаково в двоичной системе.
  4. Ячейки памяти ПК имеют последовательно пронумерованные адреса. Возможность обращения к любой ячейке памяти по ее адресу позволила использовать переменные в программировании.
  5. Возможность условного перехода при выполнении программы. Команды в ПК выполняются последовательно, но при необходимости можно реализовать переход к любой части кода.

Попробуй обратиться за помощью к преподавателям

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

Фон Нейманом также была предложена структура ПК (рис. 1).

Рисунок 1. Структура ПК

В состав машины фон Неймана входили:

  • запоминающее устройство (ЗУ);
  • арифметико-логическое устройство (АЛУ), которое выполняло все арифметические и логические операции;
  • устройство управления (УУ), которое координирует действия всех узлов машины в соответствии с программой;
  • устройства ввода-вывода.

Программы и данные вводились в ЗУ из устройства ввода через АЛУ. Все команды программы записывались в ячейки памяти последовательно, а данные для обработки – в произвольные ячейки.

Задай вопрос специалистам и получи
ответ уже через 15 минут!

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

Из АЛУ результаты выводятся в ЗУ или устройство вывода. Принципиально эти устройства отличаются тем, что в ЗУ данные хранятся в удобном для обработки ПК виде, а на устройства вывода (монитор, принтер и т.п.) в удобном для человека.

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

В УУ содержится специальный регистр (ячейка) – счетчик команд, в который записывается адрес первой команды программы. УУ считывает из памяти содержимое соответствующей ячейки памяти и помещает его в специальное устройство – регистр команд. УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

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

Архитектура современных ПК

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

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

Основные особенности архитектуры ПК сводятся к принципам компоновки аппаратуры, а также к выбранному набору системных аппаратных средств.

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

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

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

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

Читать еще:  Железо и его сплавы

Таким образом, структура ПК из одношинной, которая применялась только в первых компьютерах, становится трехшинной.

Рисунок 2. Трехшинная структура ПК

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

Многопроцессорная архитектура ПК

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

Рисунок 3. Архитектура многопроцессорного ПК

Многомашинная вычислительная система

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

Многопроцессорные и многомашинные вычислительные системы имеют преимущество перед однопроцессорными в быстродействии.

Архитектура с параллельными процессорами

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

Рисунок 4. Архитектура с параллельным процессором

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

Так и не нашли ответ
на свой вопрос?

Просто напиши с чем тебе
нужна помощь

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

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

Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.

Наиболее распространены следующие архитектурные решения.

Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер.

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

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

Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры — устройства управления периферийными устройствами.

Контроллер — устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования.

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

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

Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.

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

Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М.Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.

SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов. Примерами компьютеров с архитектурой SISD могут служить большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.

MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было. В качестве аналога работы такой системы, по-видимому, можно рассматривать работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Посколькубаза данных одна, а команд много, мы имеем дело с множественным потоком команд и одиночным потоком данных.

SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD-машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа являются, например, компьютеры Hitachi S3600.

MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класссистем делает классификацию Флинна не полностью адекватной, поэтому существуют дополненные и расширенные классификации, именованные фамилиями разработчиков.

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

Многопроцессорные и многомашинные вычислительные системы

Многопроцессорные и многомашинные вычислительные системы

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

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

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

SISD , MISD , SIMD , MIMD .

SISD ( sINgle INsTRuction sTReam / sINgle data sTReam ) — одиночный поток команд и одиночный поток данных . К этому классу относятся прежде всего классические последовательные машины, или, иначе, машины фон-неймановского типа. В таких машинах есть только один поток команд , все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций процессор может использовать конвейерную обработку . В таком понимании машины данного класса фактически не относятся к параллельным системам.

Читать еще:  Инфо о железе

SIMD ( sINgle INsTRuction sTReam / multIPle data sTReam ) — одиночный поток команд и множественный поток данных . Применительно к одному микропроцессору этот подход реализован в MMX — и SSE — расширениях современных микропроцессоров. Микропроцессорные системы типа SIMD состоят из большого числа идентичных процессорных элементов , имеющих собственную память . Все процессорные элементы в такой машине выполняют одну и ту же программу. Это позволяет выполнять одну арифметическую операцию сразу над многими данными — элементами вектора. Очевидно, что такая система, составленная из большого числа процессоров, может обеспечить существенное повышение производительности только на тех задачах, при решении которых все процессоры могут делать одну и ту же работу.

MISD (multIPe INsTRuction sTReam / sINgle data sTReam ) — множественный поток команд и одиночный поток данных . Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Ряд исследователей к данному классу относят конвейерные машины.

MIMD (multIPe INsTRuction sTReam / multIPle data sTReam ) — множественный поток команд и множественный поток данных . Базовой моделью вычислений в этом случае является совокупность независимых процессов, эпизодически обращающихся к разделяемым данным . В такой системе каждый процессорный элемент выполняет свою программу достаточно независимо от других процессорных элементов . Архитектура MIMD дает большую гибкость: при наличии адекватной поддержки со стороны аппаратных средств и программного обеспечения MIMD может работать как однопользовательская система, обеспечивая высокопроизводительную обработку данных для одной прикладной задачи, как многопрограммная машина, выполняющая множество задач параллельно, и как некоторая комбинация этих возможностей. К тому же архитектура MIMD может использовать все преимущества современной микропроцессорной технологии на основе строгого учета соотношения стоимость / производительность . В действительности практически все современные многопроцессорные системы строятся на тех же микропроцессорах, которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.

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

В этом случае выделяют следующие 4 класса систем:

  • системы с симметричной мультипроцессорной обработкой ( symmeTRic multIProcessINg ), или SMP -системы;
  • системы, построенные по технологии неоднородного доступа к памяти (non-un IForm memory access ), или NUMA -системы;
  • кластеры;
  • системы вычислений с массовым параллелизмом ( massively parallel processor ), или MPP -системы.

Самым высоким уровнем интеграции ресурсов обладает система с симметричной мультипроцессорной обработкой, или SMP-система (рис. 13.1).

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

С точки зрения прикладной задачи, SMP-система представляет собой единый вычислительный комплекс с вычислительными ресурсами, пропорциональными количеству процессоров. Распараллеливание вычислений обеспечивается операционной системой, установленной на одном из процессоров. Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается WINdows NT).

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

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

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

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

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

Так, для обеспечения возможности работы на общую магистраль каждый микропроцессор фирмы Intel начиная с Pentium Pro имеет встроенную поддержку двухразрядного идентификатора процессора — APIC ( Advanced Programmable INTerrupt ConTRoller ). По умолчанию CPU с самым высоким номером идентификатора становится процессором начальной загрузки. Такая идентификация облегчает арбитраж шины данных в SMP-системе. Подобные средства мы видели и в МП Power4, где на аппаратном уровне поддерживается создание микросхемного модуля MCM из 4 микропроцессоров, включающего в совокупности 8 процессорных ядер.

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

Остальные будут простаивать до высвобождения критической области .

Естественно, при этом резко снижается производительность приложений реального времени.

Исчерпание производительности системной шины в SMP-системах при доступе большого числа процессоров к общему пространству оперативной памяти и принципиальные ограничения шинной технологии стали причиной сдерживания роста производительности SMP-систем. На данный момент эта проблема получила два решения. Первое — замена системной шины на высокопроизводительный коммутатор , обеспечивающий одновременный неблокирующий доступ к различным участкам памяти. Второе решение предлагает технология NUMA.

Система, построенная по технологии NUMA, представляет собой набор узлов, каждый из которых, по сути, является функционально законченным однопроцессорным или SMP -компьютером. Каждый имеет свое локальное пространство оперативной памяти и ввода/вывода. Но с помощью специальной логики каждый имеет доступ к пространству оперативной памяти и ввода/вывода любого другого узла (рис. 13.2). Физически отдельные устройства памяти могут адресоваться как логически единое адресное пространство — это означает, что любой процессор может выполнять обращения к любым ячейкам памяти, в предположении, что он имеет соответствующие права доступа . Поэтому иногда такие системы называются системами с распределенной разделяемой памятью ( DSM — disTRibuted shared memory ).

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

При использовании наиболее распространенного сейчас варианта cc-NUMA (cache- coherent NUMA — неоднородный доступ к памяти с согласованием содержимого кэш-памяти) обеспечивается кэширование данных оперативной памяти других узлов.

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

Довольно большое время доступа к оперативной памяти соседних узлов по сравнению с доступом к ОП своего узла в NUMA-системах на настоящий момент делает такое использование не вполне оптимальным.

Так что полной функциональностью SMP-систем NUMA-компьютеры на сегодняшний день не обладают. Однако среди систем общего назначения NUMA-системы имеют один из наиболее высоких показателей по масштабируемости и, соответственно, по производительности. На сегодня максимальное число процессоров в cc-NUMA -системах может превышать 1000 (серия OrigIN3000). Один из наиболее производительных суперкомпьютеров — Tera 10 — имеет производительностью 60 Тфлопс и состоит из 544 SMP -узлов, в каждом из которых находится от 8 до 16 процессоров Itanium 2.

Следующим уровнем в иерархии параллельных систем являются комплексы, также состоящие из отдельных машин, но лишь частично разделяющие некоторые ресурсы. Речь идет о кластерах.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×