logo
Зимняя сессия 2014 / Вычислительные системы / Курс лекций по ар-реКомп

1.5.2. Матричные вычислительные системы.

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

Рис. 1.5. Структура матричной вычислительной системы

Именно характер связей между ПЭ и определяет разные свойства системы. Ранее уже отмечалось, что подобная схема применима и для векторных вычислений.

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

Не столь существенно, как конструктивно реализована матрица процессорных элементов — на едином кристалле или на нескольких. Важен сам принцип — ФБ логически ском­понованы в матрицу и работают синхронно, то есть присутствует только один поток команд для всех блоков.

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

Структура матричной вычислительной системы приведена на рис. 1.5.

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

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

В матричных SIMD-системах распространение получили распространение два основных типа архитектурной организации массива процессорных элементов.

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

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

В качестве процессорных элементов в большинстве матричных SIMD-систем применяются простые RISC-процессоры с локальной памятью ограниченной емкости.

Сведения о систолических вычислительных системах и вычислительных системах с командными словами сверхбольшой длины содержатся в [16].

Лекция 3

Вычислительные системы класса MIMD

Вопросы:

  1. Симметричные мультипроцессорные системы

  2. Системы с неоднородным доступом к памяти

  3. Системы с массовой параллельной обработкой

  4. Кластерные вычислительные системы 

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

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

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

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

3.1. Симметричные мультипроцессорные системы

Симметричные мультипроцессорные системы (SMP - Symmetric Multi-Processing) можно определить как вычислительные системы, обладающие следующими характеристиками:

имеются два или более процессоров сопоставимой производительности;

процессоры совместно используют основную память и работают в едином виртуальном и физическом пространстве;

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

все процессоры разделяют доступ к устройствам ввода/вывода либо через одни и те же каналы, либо через разные каналы, обеспечивающие доступ к одному и тому же внешнему устройству;

все процессоры способны выполнять одинаковые функции;

любой из процессоров может обслуживать внешние прерывания;

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

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

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

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

Типовая SMP-система содержит от двух до 32 идентичных процессоров. Это могут быть CISC- или RISC-процессоры.

Каждый процессор снабжен локальной кэш-памятью.

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

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

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

Рис.1.6. Организация симметричной мультипроцессорной системы

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

Механизм когерентности является критичным для эффективной параллельной работы SMP-системы и должен иметь малое время задержки.

Типичные SMP-системы в качестве аппаратной реализации механизма поддержки когерентности используют шину слежения (snoopy bus).

Для того чтобы данные в кэш-памяти всех процессоров оставались когерентными, каждый процессор отслеживает передачу данных по шине, осуществляя поиск тех операций считывания и записи между другими процессорами и основной памятью, которые влияют на содержимое его собственной кэш-памяти. Если процессор "В" запрашивает ту часть основной памяти, которая обрабатывается процессором "А", то процессор "А" перехватывает этот запрос и помещает свои значения области памяти на шину, где "В" их считывает. Когда процессор "А" записывает измененное значение обратно из своей кэш-памяти в основную память, то все другие процессоры “видят” как эта запись проходит по шине и удаляют устаревшие данные из своей кэш-памяти.

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

Важным аспектом архитектуры SMP-систем является способ взаимодействия процессоров с общими ресурсами (памятью и системой ввода-вывода). С этих позиций можно выделить следующие виды архитектуры этих систем 16:

с общей шиной и временным разделением;

с коммутатором в виде многошинной перекрестной структуры;

с многопортовой памятью;

с централизованным управлением.

3.2. Системы с неоднородным доступом к памяти

Системы с неоднородным доступом к памяти (NUMA - non uniform memory access) состоят (рис. 1.7) из однородных базовых узлов (плат), содержащих небольшое число процессоров с модулями двухуровневой кэш-памяти (L1 и L2), блок основной памяти, локальную шину. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной.

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

ре cc-NUMA (cache-coherent NUMA) – кэш-когерентным доступом к неоднородной памяти. Обычно вся система работает под управлением единой ОС, как в SMP-системах. Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000).

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

Рис.1.7. Организация системы с неоднородным доступом

к памяти

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

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

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

Обеспечение когерентности модулей кэш-памяти является одной из основных проблем NUMA-систем.

3.3. Системы с массовой параллельной обработкой

Системы с массовой параллельной обработкой (МРР - Massively Parallel Processing) состоят (рис. 1.8) из нескольких однородных вычислительных узлов, включающих один или несколько процессоров, локальную для каждого узла память, коммуникационный процессор или сетевой адаптер. Узлы объединяются через высокоскоростную сеть или коммутатор.

Основной признак МРР-систем – количество входящих в них процессоров, которое может быть от десятков до нескольких тысяч (так, вычислительная система Intel Paragon содержит 6768 процессоров).

Главными особенностями МРР-систем являются:

стандартные микропроцессоры;

физически распределенная память;

сеть соединений с высокой пропускной способностью и малыми задержками;

хорошая масштабируемость;

асинхронность работы узлов при использовании пересылки сообщений;

реализация программы в виде множества процессов, имеющих отдельные адресные пространства;

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

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

Рис.1.8. Структура вычислительной системы с массовой

параллельной обработкой

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

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

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

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

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

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

3.4. Кластерные вычислительные системы 

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

Кластер состоит из двух или более узлов, удовлетворяющих следующим требованиям:

каждый узел работает со своей копией ОС;

каждый узел работает со своей копией приложения;

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

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

Узлы кластеров могут содержать как одинаковые ВС (гомогенные кластеры), так и разные (гетерогенные кластеры). По своей архитектуре кластерная ВС является слабо связанной системой.

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

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

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

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

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

Лекция 4 .

Системный блок вычислительной системы

Вопросы:

1. Взаимодействие устройств

2.Как CPU(APU) реагирует на прерывания

3. Определение используемых в системе прерываний.

4. Каскадные IRQ

5. Передача информации вслед за IRQ. Порты ввода-вывода

Системный блок содержит сложные микросхемы такие какCPU,APU,GPU, модули памяти ОЗУ (RAM) и ПЗУ сBios,различные контролеры-COM,LPT,USB,LANи т.д. . Все это может быть интегрировано в материнскую плату или быть представлено отдельными блоками. Кроме того на материнской плате находятся слоты расширения, куда включаются разнообразные платы и контролеры, такие как модемы, сетевые адаптеры или видео карты. Эти устройства расширяют устройство компьютера. В любой материнской плате есть еще и шины – которые служат для подключения каждого компонента и обеспечения взаимодействия микросхем. Материнская плата содержит множество микросхем подключенных к разным шинам, которые позволяют им взаимодействовать. Основная шина называется системной. Оно объединяет ЦПУ,ОЗУ,BIOSи другие микросхемы в набор микросхем ( Чипсет)

Системная шина которая объединяет СPU(APU), модулиRAM, ПЗУBIOSи другие быстродействующие микросхемы которые характеризуются высшей скоростью работы. Долгое время системной шины в зависимости от типа компьютера и скоростиCPU(APU) работали с тактовой частотой от 66 – 100 Мгц. В современных компьютерах системная шина работает на частоте ,более 2000 Мгц. Тем не менее системная шина значительно уступает по скорости процессору. Разработчики аппаратных средств для сведения к минимуму ограничения быстродействия материнской платы применяют

различные методы ускорения работы и повышения производительности системной шины. В большинстве компьютеров используют слоты расширенияPCIExpress иPCI(PeripheralComponentInterconnect– взаимное соединение компонентов). ШинаPCIи подключаемые к ней устройства обычно работают с тактовой частотой 33-66 МГц . Подключение к слоту устройств должно быть способным взаимодействовать сCPU(APU). Для соединения более медленной шиныPCIс системной шиной, которая обеспечивает взаимодействие ЦПУ и устройств расширения в материнской плате используется устройство называемое “Северным мостом”

Северный мост может также соединять шину PCIиAGPcсистемной шиной.AGP–accelerategraficsportреализует 100 МГц соединения с видеокартой.AGP-является модификацией локальной шинойPCIи предназначена для подключения видео-акселераторов. Шина PCI Express нацелена на использование только в качестве локальной шины. Так как программная модель PCI Express во многом унаследована от PCI, то существующие системы и контроллеры могут быть доработаны для использования шины PCI Express заменой только физического уровня, без доработки программного обеспечения. Высокая пиковая производительность шины PCI Express позволяет использовать её вместо шин AGP и тем более PCI и PCI-X. Де-факто PCI Express заменила эти шины в персональных компьютерах.