- •Оглавление
- •Глава 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.6.1. Горячий резерв
- •3.6.2. Репликация
- •3.6.3. Кластеры высокой готовности
- •3.5.1. Вопросы к разделу 3.5
- •3.6. Реализация модели отказоустойчивых систем
- •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
- •Литература
3.4.4. Вопросы к разделу 3.4
1. Какую информацию позволяет получить показатели надежности работы ВС?
2. Какие требования предъявляются к методике рассчета показателей качества работы ВС?
3. Как оценивается адекватность стохастической модели функционирования ВС реальному процессу их работы?
4. В чем заключается сущность модели функционирования ВС со структурной избыточностью?
5. В чем отличие живучести ВС от надежности?
6. В чем разница между понятиями потенциальная живучесть ВС и структурная живучесть ВС?
7. В чем особенность ВС со свойствами адаптации к составу работоспособных вычислительных ресурсов?
11.Построение живучих вс, работоспособных в расчетном диапазоне кратностей отказов
Известно, что повышение надежности системы основано на следующих принципах:
1)предотвращения ее неисправностей посредством использования высоконадежных компонентов со сверхвысокой степенью интеграции,
2) резервирования этих компонентов,
поддержания облегченных тепловых и вольт-амперных режимов их работы,
экранированием от воздействия разрушающих внешних импульсных, геомагнитных и радиационных воздействий,
совершенствованием методов профилактического обслуживания и сборки аппаратуры и т.п.
Понятно, что традиционное использование экспоненциальной модели в оценках надежности составляющих вычислительную систему элементов могло бы быть оправдано лишь для определения максимального числа , lmax отказов, ожидаемого от эксплуатации системы в течение всего срока ее службы исключительно в нормативных режимах.
Реальные условия эксплуатации, загруженность системы и качество ее распределения по элементам системы, существенно меняют загруженность системы и ее элементов, а следовательно, надежностные показатели и ожидаемое число исправных из них. Следует учитывать также и то, что наличие минимально необходимого числа исправных элементарных машин (ЭМ) в системе не гарантирует ее работоспособность при утрате требуемых для взаимодействия ЭМ коммуникационных качеств. Отказоустойчивость следует рассматривать как условную вероятность сохранения системой работоспособности на множестве образов ее неисправностей. Как видно из этого определения, свойство отказоустойчивости системы не зависит от показателей надежности составляющих ее элементов. Это свойство определяется её архитектурой, нацеленной на сохранение способности выполнения ею в реальном времени и с определенным качеством необходимого минимума функций, достаточного для получения определенного техническими требованиями результата при возникновении любого отказа или их группы в пределах заданной кратности.
Отказ от учета функциональной и соответствующей ей структурной составляющих архитектуры системы сводит анализ отказоустойчивости к частному случаю, достоверному лишь для анализа полносвязных систем, где число связей равно N-1 , где N – число ВМ. В реальных же системах сложно строить большие по количеству ВМ вычислительных систем.
Структурная отказоустойчивость системы определена сохранением требуемого для успешного функционирования системы минимально необходимого числа взаимосвязанных (соответствующих заданным критериям связанности) ВМ при любой конфигурации отказов с максимально допускаемой кратностью. Показатель структурной отказоустойчивости вычислительной системы определяет таким образом долю подмножества работоспособных в множестве возможных конфигураций ВС при кратности l отказов. При этом минимально допустимое при отказах число ВМ определяется исходя из их производительности, из набора существенных функциональных подсистем и их трудоемкости, из граничных значений показателей реактивности системы в решении этих задач, из плотности вероятности распределения потока задач и т.д.
Постановка задачи анализа структурной отказоустойчивости вычислительной системы рассматривает в качестве критических параметров работоспособности минимально допустимый размер n компоненты связности графа ВС и ее предельный диаметр d. В связи с постановкой введено понятие d-ограниченной компоненты связности (d-компоненты связности), выделяющей в графе ВС максимальный связный подграф с диаметром, не превышающим предельного значения d. Введено также понятие d-ограниченной связности графа, определяемой как наименьшее число l вершин, удаление которых приводит к появлению в графе d-компоненты связности с меньшим, чем у компоненты связности, размером. Синтез отказоустойчивой системы при этом заключается в определении кратности l отказов, при которой система должна сохранять работоспособность независимо от конфигурации отказавших ВМ, и в выборе обеспечивающей это условие структурной конъюнктуры: изначального числа исправных элементарных машин и их связности. Максимальное значение кратности lmax отказов определяется при этом коррелированными ожидаемыми условиями эксплуатации надежностными показателями используемых ВМ, их минимально допустимым числом и планируемыми значениями вершинной и реберной избыточности исходного графа. Говоря об условиях эксплуатации, мы включаем сюда как внешние (температурные, радиационные и т.п.), так и внутренние факторы (загруженность, качества алгоритмов перераспределения нагрузки и т.п.).
В отличие от надежностного подхода, направленного на создание систем, высоконадёжных на заданном временном интервале, применяемый подход направлен на создание систем, работоспособных в расчетном диапазоне кратностей отказов, и основан на предположении о неизбежности отказов элементов системы в процессе ее функционирования.
Для характеристики свойств систем могут быть использованы качественные и экспертные оценки, основанные на опыте разработчиков и применяемые, как правило, при отсутствии достаточной теоретической базы: адекватной модели системы и методов ее формального описания. Такие оценки не имеют перспектив при сравнительном анализе архитектурных вариантов из-за их субъективности. Традиционно используемые оценки отказоустойчивости и живучести системы методами теории надёжности не являются явными по своей сути, так как в этом случае оценивается не определённая выше способность, а вероятность безотказной работы системы в заданном временном интервале при полной неопределённости корреляционных функций, связывающих характеристики надёжности с показателями отказоустойчивости и живучести. Недостатками «надёжностного» подхода к определению критериев отказоустойчивого функционирования системы являются:
- низкая дифференцированность значений надёжностных показателей при сравнительных оценках вариантов решений, снижающаяся с увеличением структурной сложности системы и числа составляющих её элементов;
- недостаточная достоверность среднестатистических надёжностных характеристик, не учитывающих возможные отклонения эксплуатационных режимов и параметров внешней среды, в том числе обусловленные человеческим фактором или каким-либо внешним разрушающим воздействием. Кроме того, использование этих характеристик в силу их вероятностной природы не исключает возможность отказа системы в целом;
- надежностные показатели по определению не инвариантны к используемым в составе системы аппаратным средствам и не дают информации о регенеративных способностях системы в условиях потока отказов. Это не позволяет абстрагироваться от надежностных свойств элементов системы и перейти от частных результатов, связанных с конкретными значениями показателей надежности элементов, к обобщенному анализу отказоустойчивости и живучести. В формировании свойства отказоустойчивости системы определяющую роль играют структура и многие другие компоненты ее архитектуры (методы и принципы организации, стратегии и механизмы функционирования, состав общесистемного и прикладного программного обеспечения и т.п.), но при надежностном подходе влияние этих компонентов на отказоустойчивость в принципе не может быть учтено.
Таким образом, надёжностный подход ориентирован на создание систем, высоко- (но не абсолютно) надёжных в заданном временном интервале. Надежность достигается, прежде всего, путем использования элементов повышенной надёжности, применения резервирования и мажорирования. Коэффициент аппаратурной избыточности при этом равен допускаемой в системе кратности отказов.
Рассмотрим подход, направленный на создание систем, сохраняющих работоспособность в расчетном диапазоне кратностей отказов, и основанный на оптимизированном распределении различных форм избыточности: от структурной до алгоритмической. Анализ архитектуры живучих систем и их компонентов проводится в обобщенной постановке и базируется на моделях, показателях и методах, аксиоматически предполагающих неизбежность отказов, а не их вероятность. Такой подход позволяет обеспечить устойчивость системы не только к "естественным" отказам, коррелирующим с показателями надежности, но и к отказам заданной кратности, обусловленным неучтенными внутренними факторами или возможными внешними воздействиями. Необходимая аппаратурная избыточность при таком подходе значительно ниже допускаемой кратности отказов и для больших систем не превышает нескольких процентов.
Предложенные показатели живучести и отказоустойчивости не имеют ограничений на область их приложения и применимы не только для вычислительных систем, но и при разработке любых систем большой сложности с отказоустойчивой архитектурой. В частности, такими должны быть необслуживаемые (например, бортовые) или ограниченно доступные для обслуживания системы, а также системы, отказ которых может привести к катастрофическим экологическим, экономическим и другим негативным последствиям.
Важнейшей характеристикой структуры отказоустойчивой системы является ее связность, как мера защищенности графа системы от распада на несвязанные между собой части при удалении вершин и (или) ребер. В рамках развиваемого подхода предложим модель структурно живучей ВС и метод оценки живучести ее структуры, инвариантной к надежности элементов этой структуры. Предложенная модель и метод позволяют оценить степень сохранения системой коммуникационных свойств в условиях неизбежной деградации, вызванной отказами вершин и (или) ребер в графе ВС.
Формально любая система может быть представлена множеством реализуемых ею существенных (жизненно важных) функций F={F1, F2, …, Fm}.
Система считается живучей, если на любом
интервале
из заданного времени ее эксплуатации
Tg,
(
)
множество реализуемых функций Ft
включает в себя множество существенных
функций F, F
Ft.
При этом время реализации каждой из
функций таково, что суммарное время T
реализации набора функций не превышает
некоторого заданного максимального
значения Tmax.
Невозможность реализации любой из множества F функций, либо выполнение её вне временных интервалов, определенных выше, означает отказ системы в целом.
Живучесть вычислительной системы определена как свойство, присущее ей в силу функциональной, структурной, алгоритмической и т.п. организации и заключающееся в том, что любой отказ (группа отказов), из числа возможных, не выводит систему за пределы реального времени реализации необходимого минимума функций. Результаты каждого этапа обработки в случае отказов отдельных компонентов вычислительной системы должны сохранять свои достоверность, актуальность и достаточность для выполнения всех последующих этапов работы, включая этапы принятия решения и выдачи управляющего воздействия. Исследование отказоустойчивости ВС основано на исследовании графа, вершины которого сопоставлены вычислительным модулям ВС, а дуги – линиям связи между ними. Отказы в системе моделируются изъятием соответствующих компонент графа.
Для системы, содержащей N ненадежных компонентов, введем следующие обозначения: Sl = { Sil } множество возможных состояний при кратности l N отказов,
Il = {Iil} – множество соответствующих значений показателя качества функционирования, i {1, 2, …, |Sl|}.
Определим структурную живучесть, как способность системы сохранять в требуемых пределах необходимые коммуникационные параметры при заданной кратности отказов элементов структуры системы в любых их сочетаниях. В этом определении суть коренного отличие свойств отказоустойчивости и живучести: если показатель структурной отказоустойчивости предназначен для количественной оценки свойства системы сохранения ее работоспособности в терминах булевой алгебры (да, нет), то показатель структурной живучести дает количественную оценку с учетом количественных критериев сохранением системой этого свойства (в каком диапазоне, насколько хуже).
Для характеристики коммуникационных
свойств вычислительных систем введем
понятие соединения. Под соединением
пары вершин {m,s}
понимаем множество всех непересекающихся
маршрутов между ними. Маршрут Mj(m,s)
представляет собой простую цепь с
начальной m и конечной
s вершинами и с длиной
.
Таким образом, можем сказать, что система
будет оставаться работоспособной при
заданном количестве отказов l,
если найдется хотя бы один маршрут
соединения пары наиболее удаленных
узлов с длиной не превышающей предельно
допустимого значения. Кроме того,
совокупная производительность связанных
вычислителей должна быть не менее
требуемой. Цель проектирования такой
системы состоит в разработке архитектурных,
программно-технических, методологических
и других средств обеспечения адекватности
любой из множества дефектных (с заданной
кратностью отказов) конфигураций системы
хотя бы одной конфигурации, допускающей
реализацию на ней в реальном времени
множества существенных функций.
Оперативность в решении этой задачи
определяет динамику реконфигурирования
систем и обусловлена ее сложностью.
Суть реконфигурации подсистемы состоит
в актуализации описаний текущей
физической структуры системы, в выявлении
адекватных ее текущему состоянию
вложений подсистемы, в выборе из множества
адекватных вложений оптимального, и в
выполнении необходимых процедур по
реализации последнего.
Приведем в качестве примера три графа (см. рисунки 3.5.1 а), б), и с), соответственно) отказоустойчивой ВС, состоящей из десяти ВМ.
Рисунок 3.5.1. Примеры отказоустойчивых ВС на основе нерегулярных структур
Потребности адекватной и в реальном времени реакции системы на выявленные отказы инициировали поиск эффективных методов представления графов и решения задач на них.
Таким образом, задача построения отказоустойчивой ВС может быть решена путем проецирования ее на плоскость теории графов, которая на настоящее время хорошо развита. Вообще говоря, проблема построения оптимальной отказоустойчивой ВС на настоящее время не имеет решения для произвольного числа составных элементов.
