
- •Оглавление
- •Глава 1. Архитектура вычислительных систем 11
- •Глава 2. Реализация параллельных алгоритмов 63
- •Глава 3. Надежность и живучесть вычислительных систем 96
- •Глава 4. Библиотека параллельных программ 120
- •Глава 5. Граф-схемы параллельных алгоритмов 150
- •Глава 6. Исследование информационных граф-схем со скалярными весами для планирования параллельных вычислений 182
- •Глава 7. Исследование информационных граф-схем решаемых задач с векторными весами для планирования параллельных вычислений 204
- •Глава 1. Архитектура вычислительных систем
- •1.Количественные характеристики, применяемые для оценок параметров вычислительных систем
- •Для случая неоднородной системы номинальное быстродействие выразится как
- •Здесь – вероятность выбора j-й операции, , . Для однородной вс её быстродействие по Гибсону выразится соотношением
- •Для неоднородной вс это быстродействие может быть определено, как
- •1.1.1. Вопросы к разделу 1.1.
- •2.Понятие о современных вычислительных системах
- •Пример графа регулярной вычислительной системы представлен на рисунке 1.2.1.
- •Примечание: Для регулярной вычислительной системы
- •2.1. Вопросы к разделу 1.2.
- •3.Структура современных вычислительных систем
- •3.1.Схема обмена с помощью структуры «Общая шина»
- •3.2.Схема обмена с помощью структуры «Линейка»
- •3.3.Вычислительная система, имеющая структуру типа «Кольцо»
- •3.4.Схема обмена с помощью структуры типа «Решётка»
- •1.3.5. Схема обмена с помощью структуры типа «Двумерный тор»
- •3.1.Схема обмена с помощью структуры типа «n-мерный двоичный гиперкуб» или «nD-куб»
- •3.2.Реализация обмена с помощью структуры типа «Обобщенный nD-куб»
- •3.3.Структура вс типа «n-мерный обобщённый тор»
- •3.4.Структура вс с сетью типа «Циркулянт»
- •1.3.10. Вычислительная система «Максимальный обхват»
- •1.3.11. Вычислительные системы со структурой сетей типа «Симметричные графы»
- •На рисунке 1.3.11. Представлена вс с симметричным графом.
- •1.3.12. Вычислительные системы с сетью связей типа «Гомоморфные графы»
- •1.3.13. Вычислительные системы с сетью связей типа «Граф л(n,V,g)»
- •1.3.14. Структура вычислительной системы типа «Бинарное дерево t0(n) глубины n»
- •1.3.15. Структура вычислительной системы типа «Мультидерево глубины n и ширины k t1(n,k)»
- •3.5. Вопросы к разделу 1.3
- •4.Коммуникационные среды вычислительных систем
- •Коммуникационная среда должна удовлетворять следующим требованиям:
- •4.1.Коммуникационная среда на основе масштабируемого когерентного интерфейса sci
- •4.2.Коммуникационная среда на основе технологии Myrinet
- •1.4.3. Краткая характеристика коммуникационной среды QsNet II
- •4.3. Вопросы к разделу 1.4
- •5.Коммутаторы вычислительных систем
- •1.5.1. Типы коммутаторов
- •5.1. Управление коммутаторами
- •5.2. Алгоритмы определения маршрутов
- •5.3. Дедлоки в составных коммутаторах
- •5.4.Вопросы к разделу 1.5
- •6.Процесс функционирования вычислительных систем
- •6.1. Вопросы к разделу 1.6.
- •7.Принципы технической реализации вс
- •1.7.1. Вопросы к разделу 1.7
- •1.8. Архитектурные особенности вс
- •1.8.1. Архитектурные свойства вс
- •1.8.2. Схема обмена информацией между ветвями параллельных алгоритмов
- •7.1.Опыт применения методики крупноблочного распараллеливания сложных задач
- •7.2.Архитектурные аспекты при создании ос вс
- •7.3.Структурные характеристики вс
- •7.4.Классификация структур вс
- •7.5.Вопросы к разделу 1.8.
- •Глава 2. Реализация параллельных алгоритмов
- •2.1. Реализация параллельных алгоритмов
- •2.1.1. Определение параллельного алгоритма
- •7.6.Организация динамического распараллеливания в суперскалярных микропроцессорах
- •2.1.3. Предварительная выборка команд и предсказание переходов
- •7.7.Декодирование команд, переименование ресурсов и диспетчеризация
- •7.8.Исполнение команд
- •2.1.6. Работа с памятью
- •2.1.7. Завершение выполнение команды
- •2.1.8. Направления развития суперскалярной архитектуры
- •7.9.Мультитредовая модель выполнения программы
- •7.10.Аппаратные и программные средства, необходимые для мультитредовой архитектуры
- •2.1.11. Специфика мультитредовых моделей распараллеливания
- •2.1.12. Вопросы к разделу 2.1
- •2.2.Организация распараллеливания на уровне программных модулей
- •2.2.1. Примеры организации вычислений на уровне программных модулей
- •2.2.2. Решение системы линейных уравнений методом Гаусса с помощью вс типов «решётка» и «линейка»
- •2.2.3. Исполнение алгоритма Гаусса на «решётке» n*n вm
- •2.2.4. Исполнение алгоритма Гаусса на «линейке», состоящей из n вм
- •2.2.5. Показатели эффективности параллельных алгоритмов
- •2.2.6. Понятие о сложных задачах
- •2.2.7. Вопросы к разделу 2.2
- •Глава 3. Надежность и живучесть вычислительных систем
- •8.Основные задачи создания отказоустойчивых систем
- •8.1.Вопросы к разделу 3.1
- •9.Классификация типов отказоустойчивости сложных систем и ее критерии
- •9.1.Вопросы к разделу 3.2
- •10.Способы обеспечения отказоустойчивого функционирования вс
- •3.3.1. Диагностическое тестирование вс
- •3.3.3. Способы восстановления отказоустойчивых вс
- •10.1.Вопросы к разделу 3.3
- •3.4. Построение живучих вс на основе экспоненциально- надежностного подхода
- •3.4.1. Показатели надежности вс
- •10.2. Методика расчета показателей надежности вс
- •3.4.3. Живучесть вс
- •3.4.4. Вопросы к разделу 3.4
- •11.Построение живучих вс, работоспособных в расчетном диапазоне кратностей отказов
- •3.5.1. Вопросы к разделу 3.5
- •3.6. Реализация модели отказоустойчивых систем
- •3.6.1. Горячий резерв
- •3.6.2. Репликация
- •3.6.3. Кластеры высокой готовности
- •4.1.2. Принципиальная схема программирования в OpenMp
- •11.2. Описание основных конструкций open mp
- •4.1.4. Способы построения параллельных программ
- •4.1.6. Вопросы к разделу 4.1
- •4.2. Основы построения библиотеки mpi
- •4.2.1. Основные понятия
- •4.2.2. Структура программ в mpi
- •4.2.3. Определение структуры приходящего сообщения
- •4.2.4. Определение базовых характеристик коммуникационной сети
- •11.4.Анализ тупиковых ситуаций при обмене
- •4.2.6. Организация передачи-приёма сообщений без блокировки
- •4.2.7. Реализация отложенных запросов на взаимодействие
- •4.2.8. Сравнительная оценка различных способов обмена данными
- •4.2.9. Использование глобальных операций в mpi
- •4.2.10. Взаимодействие процессов в mpi
- •4.2.11. Вопросы к раделу 4.2
- •Глава 5. Граф-схемы параллельных алгоритмов
- •5.1. Представление параллельных алгоритмов в виде граф-схем
- •5.1.1. Преобразование последовательных алгоритмов в параллельные
- •5.1.2.Использование граф-схем для представления параллельных алгоритмов
- •5.1.3. Вопросы к разделу 5.1
- •5.2.1. Вычисление матриц следования, расширенных матриц следования и матриц следования с транзитивными связями
- •5.2.2. Вопросы к разделу 5.2
- •11.5.Построение матрицы логической несовместимости.
- •5.3.2. Построение матрицы логической несовместимости операторов
- •5.3.3. Вопросы к разделу 5.3
- •5.4.1. Построение множеств взаимно независимых операторов.
- •5.4.2. Вопросы к разделу 5.4
- •Глава 6. Исследование информационных граф-схем со скалярными весами для планирования параллельных вычислений
- •6.1. Численные характеристики информационных граф-схем со скалярными весами
- •6.1.1 Определение ранних и поздних сроков окончания выполнения операторов.
- •11.6.Определение функций плотности загрузки, и минимальной загрузки для информационных граф-схем
- •6.1.3. Вопросы к разделу 6.1
- •6.2.1. Распределение операторов по вм вычислительной системы с общим полем памяти для информационной граф-схемы
- •6.2.2. Распределение операторов по вм вычислительной системы с общим полем памяти для информационно-логической граф-схемы
- •При срабатывании условного оператора «один», дуги 1.1 требуется 10 вм. Время решения задачи составит 22 условные единицы.
- •6.2.3. Распределение операторов по вм вычислительной системы с распределённой памятью для информационной граф-схемы
- •6.2.4. Реализация диаграмм для общепринятых способов обмена данными между вм вычислительной системы с распределённой памятью для информационной граф-схемы
- •6.2.5. Вопросы к разделу 6.2
- •Глава 7. Исследование информационных граф-схем решаемых задач с векторными весами для планирования параллельных вычислений
- •7.1 Информационная граф-схема решаемых задач с векторными весами вершин
- •7.1.1 Понятие об неоднородных системах
- •7.1.2. Основные определения, используемые для неоднородных вс
- •7.1.3. Вопросы к разделу 7.1
- •Литература
Глава 7. Исследование информационных граф-схем решаемых задач с векторными весами для планирования параллельных вычислений 204
7.1 Информационная граф-схема решаемых задач с векторными весами вершин 204
7.1.1 Понятие об неоднородных системах 204
7.1.2. Основные определения, используемые для неоднородных ВС 206
7.1.3. Вопросы к разделу 7.1 209
Литература 210
Введение
Повышение быстродействия вычислительных систем (ВС) является актуальнейшей задачей современной науки и техники. В данной работе будут рассматриваться архитектура ВС, как совокупность вычислительных модулей (ВМ), и методы их организации. Под вычислительным модулем (ВМ) будем понимать процессор или ЭВМ. Не менее важным вопросом является планирование параллельных вычислений применительно к ВС, созданных на базе фон-неймановских или гарвардских архитектур, которые в настоящее время получили наибольшее распространение. В основу первой и второй главы предлагаемого учебного пособия положены материалы работ [1,2] и собственные исследования автора. Глава третья представляет собой существенно переработанные в соответствии с духом времени идеи и методы, предложенные в [3,4]. Более подробное описание рассматриваемых вычислительных устройств, а также программ приводится в соответствующей цитируемой литературе и в интернете.
Процесс создания быстродействующих ВС развивается по трем основным направлениям:
1. Совершенствование элементной базы ВС:
1.1. Использование сверхбольших (СБИС) и гипербольших интегральных схем (ГБИС) с все увеличивающейся плотностью активных элементов (транзисторов) на единицу площади и скоростью их срабатывания;
1.2. внедрение в СБИС оптоэлектронных элементов;
1.3. перевод СБИС на работу в оптическом диапазоне.
2. Совершенствование архитектур ВС.
2.1. Широко используемые ВС, построенные на основе вычислителей классических фон-неймановских и гарвардских архитектур совершенствуются за счёт сокращения времени доступа к обрабатываемым данным, уменьшением времени выполнения инструкций процессоров. Особенно перспективным является создание архитектур, позволяющих распараллеливать вычисления на различных уровнях. Различаются три класса ВС: симметричные мультипроцессоры (SMP), кластеры и массово–параллельные системы (МРР).
2.1.1. Симметричные мультипроцессоры включают в себя совокупность процессоров, имеющих общее поле памяти с единым адресным пространством.
2.1.2. Кластеры состоят из совокупности процессоров, объединённых либо сетью или разделённые устройствами внешней памяти. Используются, например, средства MEMORY CHANNAL фирмы DEC, AWS фирмы NCR, или локальные, универсальные и глобальные сети, такие как Ethernet, FDDI (Fiber distributed Data Interface), сети с протоколами TCP/IP (Transmission Control Protocol/Internet Protocol), или дисковые массивы с высокоскоростными двойными и квадро PCI SCSI контролерами. Кластер может включать до нескольких сотен вычислителей и обеспечивать живучесть при отказах некоторых элементов его оборудования.
2.1.3. Массово – параллельные системы характеризуются высокой пропускной способностью, возможностью совмещения передач информации с одновременной её обработкой, поддержание различных топологий, масштабируемость и конфигурируемость.
3. Развитие архитектур ВС, использующих другие принципы обработки данных. В качестве примера можно привести ВС, использующие нейронные, ассоциативные процессоры [10,11].
4. Создание новых вычислительных методов и алгоритмов, позволяющих сокращать время получения требуемой величины, ориентированные на использование современных архитектур ВС.
Следует отметить, что эти четыре основных направления связаны друг с другом, взаимно дополняют друг друга. Так, например, при создании СБИС гораздо проще реализовать периодические структуры электронных схем. Это же свойство сушественно упрощает проектирование ВС для параллельных вычислений.
Разработка архитектур параллельных ВС требует создания новых вычислительных методов и алгоритмов и, наоборот, некоторые эффективные вычислительные методы порождают новые архитектуры ВС.
Специфика использования оптических БИС требует разработки принципиально новых методов и средств обработки данных и т. д.
В связи с появлением вычислительных систем (ВС) актуальнейшей проблемой стала разработка параллельных алгоритмов и программ, которые являются основными, чуть ли не главными компонентами этих систем. Решение этих проблем поставило перед разработчиками много новых проблем. В частности, в казалось бы более или менее законченной области человеческих знаний – математике потребовалось создание новых методов, позволяющих вычислять требуемые результаты, получая промежуточные данные одновременно на нескольких ВМ. Второй важной проблемой является создание на базе существующих математических методов параллельных алгоритмов решения задач на ВС, учитывающих архитектуры используемых ВС. Третьей важной проблемой является создание эффективных параллельных языков программирования. Конечно, список проблем на этом не заканчивается и можно продолжать этот список ещё достаточно долго.
Темой исследования данной работы являются способы представления параллельных алгоритмов, также методы отображения этих алгоритмов на структурах ВС. Было бы неправильно забыть о громадном количестве программ, которые были созданы для ЭВМ, поэтому в начале этой работы предлагаются методы и алгоритмы для преобразования последовательных алгоритмом и программ в параллельные. Это преобразование во многих случаях может вызвать большие затруднения, так как параллельная программа должна быть представлена в виде совокупности процедур и функций. Обмен данными между ними должен осуществляться с помощью аппарата формально – фактических параметров. Использование глобальных параметров различных уровней проблематично, так как затушёвывается зависимость по данным между процедурами и функциями. Выделить участок программы, и оформить его в виде процедуры или функции для создания параллельной секции, как это делается в Open MP, и добиться от этого выделения некоторого эффекта при распараллеливании, может только программист. Транслятор в этом случае может создавать параллельные ветви только для циклов по счётчику циклов. Безусловно, здесь также надо учитывать, что реализация программы на ВС требует, как правило, гораздо больших накладных расходов, поэтому не всякое преобразование последовательной программы в параллельную может быть эффективно и требует предварительных оценок при выборе структур ВС для решения рассматриваемой задачи. Для тех, кто имел дело с представлением параллельных алгоритмов с помощью схем алгоритмов по ГОСТ 19.003-80 ЕСПД, ГОСТ 19.701-90 ЕСПД, было понято, что эти схемы мало соответствуют требованиям к изображению параллельных алгоритмов и способов их отображения на структуры ВС. Поэтому в данной работе предлагается дополнение к этим ЕСПД для изображения алгоритмов в виде граф-схем, которые легко отображаются на структуры ВС с помощью библиотек Open MP, MPI и др. Конфигурации граф-схем позволяют представить в удобной форме все существующие операторы последовательных языков программирования, а также представлять схемы обмена данными между ВМ. На базе граф-схем создаются различные схемы анализа параллельных алгоритмов: матрицы следования, множества взаимно независимых операторов, внешние и внутренние замыкания в граф-схемах, определения минимального количества ВМ, обеспечивающих минимальное время решения задачи, построение нитей в граф-схемах алгоритмов решаемой задачи, распределение нитей по ВМ и т.д.