Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров / 10_Большие системы.doc
Скачиваний:
56
Добавлен:
20.03.2015
Размер:
389.63 Кб
Скачать
  1. Большие компьютерные системы

    1. Виды параллельной обработки

      1. Классификация систем параллельной обработки

    2. Матричная обработка данных

    3. Архитектура мультипроцессорных систем общего назначения

    4. Коммуникационные сети

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

    6. Программный параллелизм и общие переменные

      1. Доступ к общим переменным

      2. Согласованность кэша

      3. Блокировка и согласованность кэш-памяти

    7. Мультикомпьютерные системы

    8. Общая память и передача сообщений

      1. Система с общей памятью

      2. Система с передачей сообщений

    9. Производительность мультипроцессорных систем

      1. Закон Амдала

      2. Показатели производительности

Выводы

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

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

Но даже такая высокая производительность рабочих станций не удовлетворяет нуждам ряда приложений, требующих значительно больших вычислительных мощ­ностей, поэтому спрос на суперкомпьютеры по-прежнему сохраняется. Одним из возможных подходов к их разработке является создание системы с несколькими очень мощными процессорными устройствами. Как правило, с этой целью используются самые быстрые из существующих схем, широкие шины для доступа к основной памяти очень большого размера и мощные средства ввода-вывода. Такие компью­теры потребляют значительное количество энергии и требуют специальных сис­тем охлаждения. В приложениях, выполняющих немалые объемы вычислений, суперкомпьютеры должны с максимальной эффективностью обрабатывать так называемые векторные данные, то есть одномерные массивы чисел (элементов), рассматриваемые как единое целое. Например, может возникнуть необходимость сохранить в основной памяти векторное значение, находящееся в регистрах, или же произвести какие-либо операции над вектором, являющимся результатом по­элементного сложения двух 64-элементных векторов. Для наиболее эффективно­го выполнения приложений с многочисленными векторными операциями ис­пользуются компьютеры векторной архитектуры. Суперкомпьютеры такого класса производятся компаниями Cray (Cray-1, Y-MIP и SV1), Fujitsu (VPP5000), Hitachi (SR8000) и NEC (SX-5). Основным недостатком подобных систем явля­ется их очень высокая стоимость (куда входит не только цена, но и затраты на со­провождение и обслуживание).

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

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

10.1. Виды параллельной обработки

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

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

Приведенный пример иллюстрирует два фундаментальных аспекта парал­лельной обработки.

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

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

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

10.1.1. Классификация систем параллельной обработки

В соответствии с общей классификацией систем параллельной обработки дан­ных, однопроцессорная компьютерная система называется системой с одиночным потоком команд и одиночным потоком данных (Single Instruction stream, Single Data stream, SISD). Выполняемая процессором программа составляет поток ко­манд, а последовательность элементов данных, которые она обрабатывает, состав­ляет поток данных.

Возможна другая схема функционирования, при которой один поток команд выполняется множеством процессоров. При этом каждый процессор обрабатывает только собственные данные. Системы с такой архитектурой имену­ются системами с одиночным потоком команд и множественным потоком данных (Single Instruction stream, Multiple Data stream, SIMD). Несколькими потоками данных являются последовательности элементов данных, с которыми работают разные процессоры, каждый в своей памяти.

Третья схема функционирования системы предполагает использование нескольких независимых процессоров, которые выполняют разные программы и работают с разными последовательно­стями данных. Системы, функционирующие по этой схеме, называются системами с множественным потоком команд и множественным потоком данных (Multiple Instruction stream, Multiple Data stream, MIMD).

Системы четвертого типа из­вестны как системы с множественным потоком команд и одиночным потоком дан­ных (Multiple Instruction stream, Single Data stream, MISD). В таких системах еди­ный поток данных обрабатывается несколькими процессорами, выполняющими разные программы. Эта форма параллельных вычислений редко используется на практике, и поэтому мы не будем ее рассматривать.

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

Соседние файлы в папке Архитектура компьютеров