Добавил:
sergeevpavel0406@mail.ru СОВА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика в техническом университете / Информатика в техническом университете. Архитектура вычислительных систем

.pdf
Скачиваний:
59
Добавлен:
06.03.2018
Размер:
13.27 Mб
Скачать

3.3.Параллельные алгоритмы

фигурации-подсистемы (программно-настраиваемые в пределах ВС) в виде «линейки», «кольца», «решетки», гиперкуба и тора.

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

ALGOL, C и другие, которые являются расширениями соответствующих

последовательных языков средствами организации взаимодействии между вычислителями ВС. Объем системного расширен я составляет несколько процентов от общего объема трансляторов. Экспертно установлено, что сложность программирования на параллельных языках имеет тот же порядок, что и на последовательных языках; увеличение трудоемкости не превышает 10 % от трудоемкости последовательного программирования.

6.Простота схем обмена и распределения данных по ветвям ведет к

простоте записи и реализации параллельных программ. Затраты на организацию взаимодействий между ветвями составляют менее 10 % общего объема программы.

7. Трансляционная, трансляционно-циклическая и конвейерно-парал-

лельные схемы обмена информацией обеспечивают одновременную работу вычислителей системы и составляют не менее 90 % всех схем, реализуемых

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

общему времени ее выполнения, асимптотически стремится к нулю c ростом

объема исходных данных.

Приведенные статистические характеристики по реализащш параллельны программ получены в результате эксплуатащпи, в частности, систем <М нск-222» (1965 г.), М C (1975 г.), С (1976 г.) и трех моделей семейства МИКРОС (1986 г., 1992 г., 1996 г.), разработаяиых Oтделом вычислительньх систем CO АН СССР (CO РАН) совместно c промьпцлеяньпии организациями. Первая система имела одномерную (кольцевую) структуру и строилась из вычислитeлей-двyxпоr юсн ков (степень вершины и = 2). Вторая

ВС C имела две сети связи одномерную управляющую (дпя передачи настроечной информации, и = 2) и двумерную информационную (для обмена операндами, и = 4). На производительность ВС МИННМАКС практическое влияние оказывала двумерная сеть. Следовательно, можно считать, что каждая верцпша в системе C имела степень о = 4. Вычислительнaя система СУММА формировалась из вычислитeлей-трехпо тпоснихов (и = з ). Вычислительные системы МИКРОС компоновались из вьшислителей-

многополюсников, причем допускалось варьирование степени вершииы в пре-

делax от 2 до 6 (и = 2, 6).

Накопленный опыт параллельного программирования и сделанные выше выводы являются основой для развития параллельных (отказоустойчивых) вычислительных технологий XXI столетия.

141

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

Замечание. Следует особо подчеркнуть теоретическую и практическую зна-

чимость сформулированных выводов и, в частнс сти, статистики использования схем обмена информацией между вычислителями ВС. Фактически закономерности параллельного крупноблочного программирования были установлены в Отделе вычислительных систем Института математики СО А Н СССР еще в середине 1960-x

годов, при работе на первой в мире ВС c программируемой структурой «Mинск-222»

(см. § 7.3 или [5]).

Начиная c 1990-x годов широко используется при производстве параллельных

программ стандарт MPI (Message Passing Interface интерфейс передачи сообщений). Если изучить процедуры MPI [ 11, 12], то легко обнаружить их совместимость не только c принципами коллектива вычислителей, но и со схемами обмена информацией между

ветвями параллельных алгоритмов. Так, например, дифференцированный обмен в стан-

дартe MPI нашел воплощение в виде функций двухточечной передачи и приема данных

(Point-to-Point Communications): функций MPI_Send N МР' Recv соответственно. Такие

обмены данными, как тpaнсляционный, трансляционно-циклический и коллекторный реализуются в MPI при помощи функций коллектi гвных взаимодействий процессов

(Collective Communications), например MPI_Bcast, N1 PI_Alltoall и MPI_Gather соответ-

ственно.

Схемы обмена информацией между ветвями Р-алгоритмов и другие системные взаимодействия даже в первой ВС «Mинск-222» поддерживались соответствующей

библиотекой программ. Это позволило использовать широко распространенные язы-

ки для написания P-пpогpамм. Реaлизация стандарта MPI это тоже библиотека

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

сов (в терминах передачи сообщений). Существу от реализации MPI для языков

FORTRAN, C и С++ для различных архитектур ВС, использующих в своих узлахвычислителях операционные системы Unix, Linux и Windows.

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

3.4. Концептуальное понятие и классификация архитектур

вычислительных ciгcтeм

Вычислительные системы — coвpeмeнн ^e достижение индустрии обработки информации. Рассмотрим подробнее понятие o BC, их архитектур-

ную классификацию и основные тенденции развития архитектуры средств

вычислительной техники.

3.4.1. Понятие o B C

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

142

3.4. Кон цептуальное понятие и классификация архитектур

B энциклопедическое понятие системы (от греч. systema целое, со-

ставленное из частей; соединение) вкладывается множество элементов, нахо-

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

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

связи, элемента, подсистемы и др. Авторы книги [5] дают следующее определение: «Системой называется совокупность взаимосвязанных элементов, реализация фушщий которыми и функциональное взаимодействие между которьпми позволяют оптимальным образом достичь общей цели». Понятие системы имеет чрезвычайно широкую область применен-поя: практически каждый объект может рассматриваться как система, исктлочением не являются и средства вычислительной техники, в частности ЭВМ и микропроцессорные БИС. Конкретизируем понятие вычислительной системы, считая его частным по отношеш о к приведенным.

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

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

чески настраиваться и перестраиваться c целью достижения адекватности между своей структурно-функциональной организацией и структурой

и характеристиками решаемой задачи.

3.4.2. Классификация архитектур BC

Модель коллектива вычиcлитeлeй (3.1)—(3.7) есть диалектическое

обобщение модели вычиcлитeля (2.1)—(2.4), следовательно, BC в сравнении ЭВМ Д,нc. фон Heймaнa являются принципиально новыми средствами тex-c

ники обработки информации, средствами c качественно новыми aplcитeктypными возможностями. B самом деле, в архитектурном плане выделяют четыре класса архитектур вычислительных средств: SISD, MISD, SIMD, MIMD (ОКОД, MKOД, OKMД, MKMД). Только первый класс, a именно SISD (Single Instruction stream / Single Data stream) или ОКОД (Одиночный

поток Команд и Одиночный поток Данных) относится к ЭВМ. Под потоком команд понимается любая их последовательность, поступающая для иcпoл-

143

Конвейерные ВС

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

нения вычислительным средством (ЭВМ или ярофессором, в случае SISDархитектуры). При выполнении команд потока требуются операнды (дан-

ные), следовательно, поток команд «порождает» поток данных. Итак, SISD-

архитектура предопределяет такое функционг:рование ЭВМ, при котором один поток команд управляет обработкой одного потока данных (см. разд. 2.3.2 и рис. 2.2).

Архитектуры MISD, SIMD , MIMD откос атся к ВС. B этих архитекту-

рах имеет место множественность потоков или (и) команд, или (и) данных.

Множественность характеризуется количество одновременно реализуемых

потоков команд или (и) данных. Архитектура MISD (Multiple Instruction stream I Single Data stream) или МКОД (Множественный поток Команд и

Одиночный поток Данных) позволяет нескольким потокам команд обраба-

тывать один поток данных. Архитектура SIMD (Single Instruction stream I (Одиночный лоток Команд и МножественMultipleDatastream)илиОКМД

ный поток Данных) предоставляет возможносг,ь одному потоку команд об-

рабатывать несколько потоков данных . Архитектура MIMD (Multiple Instruction stream I Multiple Data stream ) или М КМД (Множественный поток

Команд и Множественный поток Данных) дог ускает обработку несколькими потоками команд нескольких потоков данньх.

Приведенная классификация архитектур средств обработки информации была предложена профессором Стенфо рдского университета США

М. Дж. Флинном (M.J. Flynn ) в 1966 г. и получил t широкое распространение. B архитектурах классов MISD , SIMD, MIMD (рис. 3.7) допустимо по-

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

системы, архитектура которых является предельным вариантом эволюционного развития последовательной ЭВМ и простейшей версией модели коллектива вычисли"елей. B основе таких систем лежит конвейерный (или цепочечный) способ обработки информации, a их функциональная структура представляется в виде последовательности связанных элементарных блоков обработки (ЭБО) информации. Все блоки работают параллельно, но каждый из них реализует лишь свою операцию над данными одного и того же потока. Сказанное юзволяет относить конвейерные ВС к MISD-системам (см. рис. 3.7). Реальные промышленные высокопроизводительные ВС являются, как правило, мультиконвейерными. B них единое управляющее устройство (управляющая подсистема или ЭВМ

Host computer, контроллер и т. п.) формирует седин поток команд и несколь-

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

архитектурой SIMD.

144

3.4. Концептуальное понятие и классификация архитектур

SISD-архитектура; ЭВМ

 

MISD-архитектура;

Процессор

 

 

конвейерные ВС

 

Г

 

 

 

 

 

 

Устройство

ooc^j ^

Конвейер

 

управления

 

 

 

 

 

 

i

 

ЭБО1 =

... =ф ЭБО;

 

АЛУ

 

 

 

 

 

 

 

 

Поток данных

 

Поток результатов

V

 

 

 

 

Память

 

 

Память

 

 

 

•о^

 

 

SIMD-архитектура;

 

MIMD-архитектура;

матричные ВС

 

распределенкые мультипроцессорные ВС,

Устройство управления

ВС c программируемой структурой

 

 

 

i

 

 

 

ЭП 12

 

ЭП 1n

 

ЭП 1л

эп22 Ё

эпZП J...

 

 

 

 

wc^

 

эпп2

 

 

ЭМп 1

ЭМпг

Рис. 3.7. Развитие архитектуры вычислительных средств:

АЛУ — арифмeтико-логическое устройство; ЭБО — элементарный блок обработки; ЭП — элементарный процессор; ЭМ — элементарная машина; ЛП — локальная память; ЛК — локaльный коммyтатор; -* — поток команд; b — поток данных; оф — направление трансформации архитектуры

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

Каждый ЭП представляет собой композицию из арифмeтико-логического

устройства (АЛУ) и локальной памяти (ЛП); последняя предназначается для

145

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

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

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

тектурой MIMD.

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

мы c MIMD-архитектypой, которые состоят из множества (не связанных друг c другом) процессоров и общей (возможно и сек щионированной, модульной) памяти; взаимодействие между процессорами и памятью осуществляется через коммутатор (общую шину и т. п.), a между процессорами через память.

Распределенные ВС мультипроцессорныые ВС c MIMD -архитекту-

рой, в которых нет единого ресурса (общей памяти). Распределенная ВС основывается на принципах модульности и бли2 кодействия (см. разд. 3.2.1). Основные компоненты распределенной ВС (такие, как коммутатор, устройство управления, арифметико-логическое устройство или процессор, память) допускают представление в виде композп щии из одинаковых элементов (локальных коммутаторов и устройств упr авления, локальных процессоров и модулей памяти).

Примером промышленной реализации распределенных ВС являются тpанспьютерные системы. Транспьютерная ВС композиция из одинаковых взаимосвязанных микропроцессоров, Называемых транспьютерами. в состав тpанспьютера входят локальные процессор и память, a также ло-

кальные средства коммутации и линки (Link связь), позволяющие

организовать взаимодействия c другими транспьютерами.

Вычислительные системы c программz4руемой структурой полностью основываются на модели коллектива вычислителеи., и являются композицией взаимосвязанных элементарных машин: (ЭМ). Каждая ЭМ в своем составе обязательно имеет локальный коммун атор (ЛК), процессор и память; может иметь также внешние устройства. Локальная память ЭМ предназначается для хранения и части данных, и, -,лавное, ветви параллельной программы. Архитектура ВС c программируемой структурой относится к

типу MIMD. Такие ВС по своим потенциальным архитектурным возможно-

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

146

3.4. Кон цептуальное понятие и классификация архитектур

ном способе обработки данных на ВС полностью используются возможности MiVD-архитектуры. При конвейерном и матричном способах обработки данных архитектура М]МD виртуально трансформируется соответственно в архитектуру MISD и SIMD. Системы c программируемой структурой рассчи-

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

вычислительной сети.

Концепция ВС c прогpаммируемой структурой была сформулирована

в Сибирском отделении АН СССР, первая система («Mинск-222») была построена в 1965-1966 гг. (см. § 7.3 или [5]).

Кластерные ВС разновидность мультипроцессорных систем, ин-

туитивная оценка архитектурных возможностей которых вытекает из семан-

тики слова кластер (Cluster группа). Такие системы получили широкое

распространение уже в 90-x годах ХХ в. B списке Тор500, т. e. 500 наиболее мощных суперкомпьютеров мира, кластерные системы доминируют; например в 28-й и 29-й редакциях списка их количество составляет соответственно 361 и 373.

Термин «вычислительный кластер», по-видимому, был впервые вве-

ден DEC (Digital Equipment Corporation). По определению DEC, кластер

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

как единое средство обработки информации. Из приведенного определения

видно, что корпорация DEC, по сути, ввела синоним термину «ычислитель-

ная система», a не особый тип средств обработки информации. для создания

кластерных ВС используются и MISD-, и SIMD-, и МIМД-архитектуры, различные функциональные структуры и конструктивные решения.

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

нико-экономическую эффективность.

Начало XXI в. ознаменовалось созданием пространственно-распреде- ленных мультикластерных ВС как макpоколлективов (см. разд. 3.1.4) рассредоточенных кластеров, взаимодействующих между собой через локальные и глобальные сети (включая всемирную сеть Internet).

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

147

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

стью и технико-экономической эффективностью) для фиксированного этапа

развития индустрии обработки информации. О ни могут быть основаны на любой из архитектурных парадигм. Совр менные суперкомпьютеры (10 12 ...1015 опер./c) являются вычислительными i системами c массовым параллелизмом и, если придерживаться терминол эгическои строгости, их сле-

дует называть суперВС.

Достигнутый уровень развития ВТ и интегральной технологии позво-

ляет производить персональные суперВС. Осенью 2006 г. компания Intel

продемонстрировала кремниевую пластину из 0 чинов, каждый из которых содержал по 80 ядер (80 процессорных элементов). B начале 2007 г. компания выпустила первый рабочий образец 80-ядерного микропроцессора. Данный микропроцессор обладает производители костью 10 12 операций c пла-

вающей запятой в секунду (1 TeraFLOPS) и скоростью обмена данными ме-

жду ядрами порядка нескольких терабит в секунду и характеризуется низким электроэнергопотреблением 62 Вт. Таким образом, микропроцессор сам по себе уже является суперВС.

Для оценки значимости достижений компании Intel отметим, что терафлопсный суперкомпьютер конца 90-x годов ХХ в. состоял примерно из

10 000 процессоров Intel Pentium Pro, характерезовался потребляемой мощ-

ностью 500 кВт и занимал площадь 185 м2

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

MISD, и как SIMD, и как MIMD. Таким образог4, можно констатировать, что

мультиархитектypа стала парадигмой при конструировании высокопроизводительных ВС.

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

платформу ВС c программируемой структурой.

4. КОНВЕЙЕРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

Конвейерные ВС относились к числу самых популярных высокопроизводительных средств обработки информации в 70-x и 80-x годах ХХ в. Они обеспечивaли быстро действие порядка 10 8 ...109 опер./c, которое в то время вос-

принималось как рекордно высокое. Последнее позволяло называть конвейер-

ные ВС как суперЭВМ (Supereomputers). Конвейерные ВС имели аппаpатурно

реализованные команды, позволявшие выполнять операции над векторами данных. Поэтому такие ВС называли также векторными компьютерами

(Vector Computers).

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

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

рые основываются на достижениях u PVP-, u МРР-систем.

4.1. Каноническая функциональная структура

конвейерного процессора

B конвейерных ВС основной объем операций по обработке данных вы-

полняeтся одним или несколькими конвейерньпии процессорами (или кратко: конвейерами). Конвейеры оперируют c векторами данных, которые являются

одномерными массивами или одномерными упорядоченными совокупностями элементов данных одного типа. Если воспользоваться терминами алгебры матриц, то вектор данных это или столбец, или строка, или диагонaль дву-

мерной матрицы, либо матрица-столбец или матpица -стpока вида:

А = 11 А1, А2, ... , А1, ... , Ап II = (А1, А2, ... , А', ... , А),

где А' i-й компонент (или элемент, или элемент-операнд, или скaлярная величина, или просто «скалйр», или число), i =1, n.

149

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

B конвейере векторные операции реализуются аппаратурно, поэтому его называют также векторным процессором. При этом всегда предусматриваются операции покомпонентного сложения и покомпонентного умножения двух векторов, a также либо покомпонен твое деление векторов, либо формирование вектора из чисел, обратных компонентам данного вектора. Для более сложных операций (например, п^ компонентного извлечения

квадратного корня) могут быть введены свои векторные команды. B конвей-

еры может быть заложена возможность реализации триад (Linked Triad

сцепленных триад), т. e. операций вида

A+aB,

где A и В векторы данных; а скaляр; аВ вектор, компоненты которого равны соответствующим компонентам В, умноженным на a. Возможны и другие разновидности триады, например:

(A + a)B,

где A + а вектор, получаемый из A путем п-пибавления числа a к каждому компоненту.

B основу функциональной организации конвейера положен принцип сегментирования арифметико-логического усГ ройства на «специализированные» части. Каждая из таких частей-сегментов должна быть ориентирована на реализацию вполне определенной опер ации ( макроили микрооперации, в частности) над парой скaляров-операм ядов (каждый из которых яв- ляется элементом своего вектора).

Конвейер (Pipeline) организуется, в общем случае, как цепочка из элементарных блоков обработки информации (ЭЬО 1) и памяти (ЭБП,), i =1, n (рис. 4.1). Каждый из блоков ЭБО 1, i =1, п, осе гществляет частичное преобрaзование 9 (А, В) компонентов векторов-операндов:

А = IIАi , Аг, ..., Ат, ..., Апii, В llВi , Вг, ..., В1, ..., В„II.

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

A, B --* cp1 (A, B) — ... —+ 1(А, B) ....— v„(A, B) = и(A, B)•

Блоки ЭБП1 (i =1, п —1) и блок ЭБПп используются для хранения промежуточных результатов (р г (A, В) и иском его результата (р(А, В). Конструктивно блоки ЭБП1, i = 1, п, могут быть объединены в единое целое: в оперативную память либо в векторные регистре а.

150