Информатика в техническом университете / Информатика в техническом университете. Архитектура вычислительных систем
.pdf3.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
