Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Параллельные информационные технологии

Покупка
Новинка
Артикул: 084503.04.99
Доступ онлайн
1 000 ₽
В корзину
Излагаются основные структурные решения, воплощённые в параллельных вычислительных системах и способствующие их высокой производительности. Изучаются основные популярные архитектуры. Исследуются принципы оптимизации выполнения параллельных программ. Производится классификация параллельных вычислительных систем и способов распараллеливания. Приводятся «исторические» примеры параллельных ВС. Изучается проблема распараллеливания на уровне исполнительных устройств. Рассматривается организация конвейеров операций, векторных конвейеров, выполнения операций на стеке. Исследуются принципы динамического распараллеливания в многофункциональном арифметическо-логическом устройстве. Изучаются принципы «статического» составления потактового расписания работы процессора, управляемого в каждом такте. Такая компоновка командных слов характерна для суперскалеров VLIW- и EPICархитектуры. Освещается проблема организации интенсивного ветвления вычислений с помощью команды выполнения логического оператора и механизма предикатов, без традиционного использования команд условного перехода. Иллюстрируется возможность эффективного программирования конкретных задач. Рассматриваются некоторые «нетрадиционные» архитектуры, отражающие альтернативный поиск и эффективные решения при создании современных архитектур многопроцессорных вычислительных систем. Рассматривается проблема использования языка высокого уровня в качестве ассемблера - единственно доступного языка пользователя, включающего сложные алгоритмические конструкции. Аппаратная поддержка такого языка выполнена в отечественном семействе «Эльбрус». Обсуждается проблема практического применения принципа data flow при построении асинхронных вычислительных систем. Приводятся примеры программирования. Рассматривается архитектура вычислительной системы, основанная на принципе SPMD - «одна программа - много потоков данных». Анализируется возможность применения SPMDтехнологии к решению задач логического вывода. Рассматривается проблема когерентности кэшпамяти в многопроцессорной системе.
Барский, А. Б. Параллельные информационные технологии : краткий учебный курс / А. Б. Барский. - Москва : ИНТУИТ, 2016. - 206 с. - ISBN 978-5-94774-546-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155109 (дата обращения: 05.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Архитектура параллельных вычислительных систем

2-е издание, исправленное

Барский А.Б.

Национальный Открытый Университет “ИНТУИТ”
2016

2
УДК 004.2(075.8)
ББК 17
Б26
Параллельные информационные технологии / Барский А.Б. - M.: Национальный Открытый
Университет “ИНТУИТ”, 2016 (Основы информационных технологий)
ISBN 978-5-94774-546-7

Излагаются основные структурные решения, воплощённые в параллельных вычислительных
системах и способствующие их высокой производительности. Изучаются основные популярные
архитектуры. Исследуются принципы оптимизации выполнения параллельных программ.
Производится классификация параллельных вычислительных систем и способов распараллеливания.
Приводятся «исторические» примеры параллельных ВС. Изучается проблема распараллеливания на
уровне исполнительных устройств. Рассматривается организация конвейеров операций, векторных
конвейеров, выполнения операций на стеке. Исследуются принципы динамического
распараллеливания в многофункциональном арифметическо-логическом устройстве. Изучаются
принципы «статического» составления потактового расписания работы процессора, управляемого в
каждом такте. Такая компоновка командных слов характерна для суперскалеров VLIW- и EPIC-
архитектуры. Освещается проблема организации интенсивного ветвления вычислений с помощью
команды выполнения логического оператора и механизма предикатов, без традиционного
использования команд условного перехода. Иллюстрируется возможность эффективного
программирования конкретных задач. Рассматриваются некоторые «нетрадиционные» архитектуры,
отражающие альтернативный поиск и эффективные решения при создании современных архитектур
многопроцессорных вычислительных систем. Рассматривается проблема использования языка
высокого уровня в качестве ассемблера - единственно доступного языка пользователя, включающего
сложные алгоритмические конструкции. Аппаратная поддержка такого языка выполнена в
отечественном семействе «Эльбрус». Обсуждается проблема практического применения принципа
data flow при построении асинхронных вычислительных систем. Приводятся примеры
программирования. Рассматривается архитектура вычислительной системы, основанная на принципе
SPMD - «одна программа – много потоков данных». Анализируется возможность применения SPMD-
технологии к решению задач логического вывода. Рассматривается проблема когерентности кэш-
памяти в многопроцессорной системе.

(c) ООО “ИНТУИТ.РУ”, 2007-2016
(c) Барский А.Б., 2007-2016

3
Введение

Предисловие

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

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

Можно представить следующие направления развития параллельных технологий.

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

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

Параллельные алгоритмы являются естественным результатом оптимального решения
задач распараллеливания. Применение многопроцессорных вычислительных систем, а,
в особенности, бурно развивающиеся сетевые технологии для решения задач высокой
сложности - оптимизационных, моделирования — стимулировали критический подход
к тем методам вычислений, которые были разработаны для математика-вычислителя,
крутящего ручку арифмометра. Изменился критерий оптимизации вычислительного
процесса: не количество выполняемых операций стало определяющим, а “длина
критического пути”. Указанное направление также рассматривается в книге.

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

4
Необходимый объем предварительных знаний базируется на стандартах курсов по
информатике и основам ЭВМ.

Введение

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

Теперь не секрет, что “холодная война” стимулировала развитие вычислительных
средств сверхвысокой (по тому времени) производительности, призванных
удовлетворить требования управления сложными объектами и системами в реальном
масштабе времени. Отсутствие какой-либо внешней помощи вынуждало мобилизовать
все внутренние научные и производственные ресурсы, производя работы в режиме
экономии средств и времени.

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

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

Впоследствии принципы распараллеливания стали применяться на всех уровнях
разработки ВС: и отдельных устройств, и процессоров. Отметим, что такой способ
распараллеливания, как конвейерный, использовался на раннем этапе создания ЭВМ и
используется сейчас.

Приоритет в создании ВС на общей памяти принадлежит С. Крею, признанному “отцу
супер-ЭВМ“, главному конструктору системы CDC 6600, разработанной в 1963 году.
Однако условия соперничества и сокрытия информации определили независимость

5
отечественных разработок.

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

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

Необходимо отметить тех выдающихся ученых, чьими усилиями осуществлялась не
только разработка, но и обоснование эффективности и целесообразности пути создания
многопроцессорных ВС, ибо своевременно принятая техническая политика определяет
эффективное развитие государства. (К сожалению, известна и негативная политика в
области вычислительной техники, отвлекшая значительные технологические ресурсы.)
Такими учеными являются: В.М.Бахарев, настойчиво пропагандировавший,
продвигавший и руководивший исследованиями в области ВС на общей памяти;
В.С.Бурцев и Б.А.Бабаян — конструкторы и ведущие разработчики семейства
“Эльбрус”, продолжающие борьбу за честь Отечества и поныне; М.А.Карцев —
теоретик ВС и разработчик семейства, по его словам, “универсальных
спецпроцессоров”, объединивших в одном вычислительном устройстве скалярные и
векторные операции; Б.А.Головкин, исследовавший эффективность внедрения ВС в
сложные управляющие системы.

Какова же цель распараллеливания?

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

Если несколько процессоров составляют ВС, то важной характеристикой ее
эффективности (основные составляющие эффективности — производительность,
надежность, стоимость) при специализированном использовании (например, в составе
автоматизированной системы управления, АСУ) является коэффициент полезной
загрузки k3. Для его определения находят коэффициенты загрузки процессоров:

где Ti, i = 1, …, n, — суммарное время занятости каждого процессора решением
задачи на всем отрезке полного решения задачи, длиной Tреш (рис.В.1). Тогда

6
Если P0 — производительность одного процессора, то реальная производительность PBC
ВС, состоящей из n процессоров, при решении данной задачи (!) находится:

где P0 определяется классом решаемых задач.

Рис. B.1.  Диаграмма параллельного выполнения информационно взаимосвязанных
работ в ВС

Какая догадка явилась предпосылкой организации параллельной обработки
информации?

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

Пусть управляющая система обслуживает несколько объектов, каждый из которых
требует затраты производительности P, в соответствии со стадией обслуживания, как
показано временными диаграммами на рис. В.2. Начала обслуживания, а также
длительность стадий обслуживания, случайно распределены во времени. На каждой
стадии обслуживания используется общее для всех объектов подмножество программ
— функциональных модулей. Тогда видно, что если за объектами жестко закреплять
процессоры ВС, то их производительность должна удовлетворять самой напряженной
последней стадии обслуживания. Если же в соответствии со случайным взаимным
смещением этой стадии все множество функциональных модулей, требуемых для всех
объектов, динамически распределять между процессорами, то такой пиковой нагрузки
на один процессор в среднем можно избежать. То есть можно руководствоваться
результирующей диаграммой на основе суммирования тех, что изображены на
рисунке.

Конечно, такое допущение должно подтверждаться на основе моделирования реальных

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

Рис. B.2.  Затраты производительности при обслуживании нескольких объектов

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

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

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

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

Однако ВС способна не только делиться своими методами с управлением и
планированием. Закономерно и обратное влияние: задачи предъявляют требования к
архитектуре ВС, обеспечивающие их эффективное решение.

8
С учетом этого взаимного влияния подход к решению таких задач существенно
расширяется. Дело в том, что многие методы вычислений (а речь идет о задачах
высокой сложности — оптимизационных, информационно-логических, моделирования
сложных систем и др.), создавались в эпоху, когда математик-вычислитель крутил
ручку арифмометра. Минимизация числа операций была единственным критерием
сложности метода, а многие “интеллектуальные” действия при этом не учитывались.

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

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

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

Такие школы возглавляли И.В.Прангишвили, С.Я.Виленкин, В.В.Игнатущенко и др. —
в области создания микропроцессорных векторных ВС и ВС с перестраиваемой
структурой. Новосибирская школа (Ю.Г.Косарев, В.Е.Котов, А.С.Нариньяни и др.)
пропагандировала универсальные, многофункциональные структуры ВС и значительно
продвинулась в теоретическом обосновании параллельных вычислительных процессов.
Плодотворной была Таганрогская школа, возглавляемая А.В. Каляевым, которая
защищала идею многопроцессорных ВС с программируемой структурой. С началом
“перестройки” закончились очередные попытки “догнать и перегнать” на основе
расширенного воспроизведения идей С. Крея в рамках проекта “Электроника ССБИС”,
осуществляемого В.А. Мельниковым — конструктором замечательной ЭВМ
“БЭСМ-6”.

В 1967 году в издательстве “Советское радио” вышла монография Ю.С.Голубева-
Новожилова “Многомашинные комплексы вычислительных средств”, которую можно
считать первой отечественной публикацией, отображающей применение параллельных
технологий в вычислительных системах. Однако в более общем применении следует
указать, например, на монографию С.И.Зуховицкого и И.А.Радчика “Математические
методы сетевого планирования”, вышедшую в издательстве “Наука” в 1965 году. И все
же первым теоретическим осмыслением нового направления следует считать
монографию Д.А.Поспелова “Введение в теорию вычислительных систем”, вышедшую

9
в издательстве “Советское радио” в 1972 году. Следует отметить и дальнейшую роль
Д.А. Поспелова в развитии идей компьютерных технологий — от элементно-
логической базы и основ оперативного управления до искусственного интеллекта.

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

10
Доступ онлайн
1 000 ₽
В корзину