Большие компьютерные системы

April 9, 2010 by admin Комментировать »

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

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

? Коммутационные и локальные сети

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

? Согласованность кэш-памяти для общих данных

? Системы с общей памятью и с передачей сообщений

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

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

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

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

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

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

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

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

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

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

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

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

В соответствии с общей классификацией систем параллельной обработки дан­ных, однопроцессорная компьютерная система называется системой с одиночным потоком команд и одиночным потоком данных (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 и покажем, для каких приложений она используется.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты