
- •Оглавление
- •Глава 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
- •Литература
9.1.Вопросы к разделу 3.2
1. Какие типы отказоустойчивости существуют в сложных систем?
2. Назовите критерии отказоустойчивости сложных систем.
3. Чем отличается абсолютная отказоустойчивость от негарантированной?
4. Чем отличается гарантированная отказоустойчивость I от гарантированной отказоустойчивости II?
5. Дайте определение активной отказоустойчивости сложных систем.
6. Дайте определение пассивной отказоустойчивости сложных систем.
7. Что такое параметрическая избыточность?
8. Чем отличается параметрическая избыточность от временной?
9. В чем сущность алгоритмической избыточности?
10.Способы обеспечения отказоустойчивого функционирования вс
Ниже обзорно рассмотрены средства устранения последствий отказов и сбоев, а также основные способы восстановления процесса обработки данных. В общем же случае процесс функционирования отказоустойчивой ВС может быть представлен схемой на рисунке 3.3.1.
Важным с точки зрения функционирования ВС является повышение показателей надежности отдельного узла (вычислительного модуля (ВМ)) ВС, это достигается блокированием воздействий отказавших компонентов и их оперативной заменой:
отказ процессора – использование многопроцессорных конфигураций;
отказ памяти – использование кодов с обнаружением и исправлением ошибок;
отказ дисков – применение RAID технологий, а также горячей замены (без прерывания функционирования компьютера) отказавших дисков и контроллеров;
отказ питания и охлаждения – использование резервных блоков питания и блоков вентиляторов, источников бесперебойного питания, а также горячей их замены.
Рисунок 3.3.1. Последовательность функционирования отказоустойчивой ВС
Объединение таких элементов в ВС создает следующий уровень обеспечения надежности – взаимное контролирование узлами друг друга с целью парирования ошибочных действий персонала, адекватной реакции на изменение внешней среды и т.д.
Коэффициент готовности отдельного ВМ без применения средств блокирования последствия отказов обычно 0,99. Это составляет около 4 дней в году. Объединение ВМ в систему и применение вышеперечисленных мер позволяет довести коэффициент готовности до 0,9999, что сводит простой ВС к нескольким минутам в год.
Основные подходы к обеспечению отказоустойчивости
Обеспечение отказоустойчивости ВС включает решение следующих проблем:
1) обнаружение сбоя или отказа программно-аппаратных средств;
2) диагностирование сбоя или отказа и устранение влияния отказа;
3) восстановление работоспособности путем использования для продолжения функционирования признанных работоспособными процессоров и протекающих на них прикладных программ либо путем перезапуска общесистемных и прикладных программ на реконфигурированной ВС.
Каждая из вышеперечисленных проблем может решаться разными методами, причем программно-аппаратные затраты на ее решение зависят от интервала времени, допустимого по условиям эксплуатации ВС, от момента сбоя или отказа до момента восстановления работоспособности.
3.3.1. Диагностическое тестирование вс
Тестирование ВС может строиться как на основе тестов самопроверки ВМ, так и на базе тестовой взаимной проверки ВМ друг друга или использования комбинации этих подходов. Рассмотрим подход к тестированию на основе взаимной проверки ВМ друг друга.
Итак, будем полагать, что каждый ВМ может запустить по линку диагностический тест в соседним с ним ВМ путем передачи в него теста и удаленного запуска тестирования с возвращением результата тестирования. Если ВМ, производящий тестирование, исправен, то он делает правильное заключение о работоспособности подвергшегося тестированию ВМ. Если неисправный ВМ тестирует соседний ВМ, то результат тестирования – произвольный. Соседний ВМ может быть признан как исправным, так и неисправным.
При взаимном тестировании ВМ может образовывать подсистемы ВМ, имеющих одно и то же заключение об исправности друг друга. Тестирование инициируется в одном или нескольких ВМ независимо друг от друга по собственному таймеру или каким-либо иным способом. Пусть ВМi тестирует соседний ВМk и признает его исправным, затем ВМk тестирует ВМi. Если ВМk признает ВМi исправным, то они образуют подсистему из двух ВМ, имеющих одинаковое представление об исправности друг друга. Далее каждый из включённых в подсистему ВМ пытается включить в нее все соседние с ним ВМ. При этом несколько независимо строящихся подсистем могут объединяться в одну, если ВМ, входящие в них, имеют одинаковое представление об исправности друг друга. При этом в ходе тестирования ВМ подсистемы обмениваются сообщениями, на основании которых подсчитывается число ВМ, включенных в подсистему. В предположении одновременного существования в ВС не более чем m неисправных ВМ, все ВМ, имеющие заключение друг о друге как об исправном ВМ, при числе ВМ подсистемы, превышающем m признаются исправными. Эта подсистема образует диагностическое ядро, используемое для тестирования остальных ВМ системы.
Выделение диагностического ядра ускоряет и упрощает тестирование ВС. ВМ диагностического ядра уже не нуждаются во взаимопроверке, а просто делают заключение об исправности остальных ВМ.
3.3.2. Способы и средства устранения последствий ошибок и отказов в ВС
Как известно, простейшим способом устранения ошибок является повторение вычислений. Однако он позволяет устранить только ошибки, вызванные сбоями, и требует значительных затрат машинного времени. Поэтому в практике используют два основных способа устранения последствий отказов и ошибок в работе ВС:
маскирование ошибочных действий;
реконфигурация системы.
Классификация способов устранения последствий отказов и ошибок приведены на рисунке 3.3.2.
Рисунок 3.3.2. Классификация способов и средств устранения последствий ошибок и отказов
Суть первого способа состоит в том, что избыточная информация скрывает действие ошибочной информации за счет особенностей схемных решений и организации процесса обработки данных. При этом используются средства устранения последствий ошибок – средства маскирования, которые делятся по принципу действия на следующие группы:
корректирующие коды (коды Хэмминга, итеративные коды, AN-коды);
логика с переплетениями;
схемы с голосованием (используется нечетное число блоков, выполняющих одни и те же вычислительные операции, и большинством «голосов» определяется правильный набор выходных данных).
Соответственно возможные альтернативы использования этих методов определяются тем, что предпочтительнее:
1) затратить больше ресурсов и медленнее, чем максимально возможно, выполнять программу, выявляя сбои и отказы,
2) выполнять программу с максимально возможной скоростью (без избыточных обменов и ВМ) и проводить через некоторые промежутки времени тестирование на предмет выявления отказов.
Выбор между этими альтернативами следует производить с учетом того, что ресурсы, затрачиваемые на обнаружение сбоев и отказов, могут быть использованы для ускорения параллельного выполнения программы, что, в свою очередь, ведет к образованию временной избыточности. Последняя может быть также использована для повышения отказоустойчивости. Например, временная избыточность позволяет повторять вычисления и сравнивать результаты, что выявляет сбои при исполнении программы.
Реконфигурация системы заключается в изменении состава средств обработки информации или способа их взаимодействия. Реконфигурация производится после выявления отказа. Этот способ устранения последствий ошибок и отказов включает:
статическую реконфигурацию;
динамическую реконфигурацию.
Статическая реконфигурация системы осуществляется путем отключения отказавших компонентов. При этом система делится на две части: активную, участвующую в работе, и пассивную, охватывающую неработоспособные компоненты системы и отключенные в ходе реконфигурации.
Динамическая реконфигурация по принципу проведения делится на следующие виды:
замещение (поддержка запасом);
дублирование;
постепенная деградация системы (снижение функциональных способностей).