
- •Оглавление
- •Глава 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
- •Литература
Для случая неоднородной системы номинальное быстродействие выразится как
, (1.1.5)
где Ni – количество
вычислительных модулей i–го
типа в неоднородной системе, ki
– операции, выполняемые i-м
типе вычислительного модуля, n
– число типов вычислительных модулей,
– время выполнения j-й
операции на i-м типе
ВМ.
В случае не равновероятного выбора операций используется быстродействие вычислительного модуля по Гибсону:
, (1.1.6)
Здесь – вероятность выбора j-й операции, , . Для однородной вс её быстродействие по Гибсону выразится соотношением
,
(1.1.7)
где N – количество вычислительных модулей в однородной системе, t*j – время выполнения j-й операции из множества операций R вычислительного модуля, рj – вероятность выполнения j-й операции.
Для неоднородной вс это быстродействие может быть определено, как
(1.1.8)
где Ni
– количество вычислительных модулей
в неоднородной системе, ki
– операции, выполняемые на i-м
типе вычислительного модуля, n
– число типов вычислительных модулей,
– время выполнения j-й
операции на i-м типе
вычислительного модуля,
–
вероятность выполнения j-й
операции на i-м типе
вычислительного модуля.
Вероятности
,
или
ещё
называют весовыми коэффициентами.
Существуют определённые наборы
коэффициентов, которым соответствуют
наборы тестов – т.н. смеси Гибсона.
Если соотношения (1.1.3 – 1.1.8) применяются только к арифметическим операциям над целыми числами, то единицей измерения служит MIPS или GIPS согласно соотношению (1.1.1). В остальных случаях (для чисел с фиксированной и плавающей точкой) используется соотношение (1.1.2). В качестве примеров таких тестов могут служить тесты SPECint95 и SPECfp95 [5-9].
Все вышеперечисленные показатели не
учитывают обмены информацией между
устройствами. Для учёта этих зависимостей
вводят наборы типовых задач
.
Для задачи
известно
количество выполняемых операций
(с
учётом операций ввода-вывода и операций
обмена информацией) и время выполнения
вычислительных операций
.
Быстродействие вычислительного модуля
при решении типовой задачи будет:
,
(1.1.9)
Определяются вероятности спроса на
типовые задачи в виде
,
тогда среднее быстродействие
вычислительного модуля:
(1.1.10)
Использование соотношения (1.1.10) для однородных ВС может быть использовано в виде
,
(1.1.11)
где N – количество вычислительных модулей в ВС.
При использовании соотношения (1.1.10) для неоднородных ВС его необходимо модифицировать, учитывая наличие n типов вычислительных модулей
,
(1.1.12)
Для использования показателей (1.1.10-1.1.12) существует множество специальных тестовых наборов Z. Наиболее известным является набор LINPACK [5-9], определяющий производительность вычислительных модулей при решении систем линейных уравнений. Естественно, что применимость тестовых наборов Z должна быть обеспечена для различных архитектур вычислителей, по крайней мере на уровне языков высокого уровня.
Показатель
(1.1.7),
как нетрудно заметить, в сильной степени
зависит от выбора системы тестов Z.
Поэтому в отдельных случаях чтобы
уменьшить эту зависимость, вводят
унифицированные операции и операнды.
Унифицированным формам данных может
быть выбран байт. В качестве унифицированной
операции выбирают, например, операцию
сравнения данных. Все остальные операции
выражаются через унифицированную, в
виде
,
где Uf
– рассматриваемая операция, U
– унифицированная операция.
Унифицированное быстродействие для j–ого теста определяется как:
, (1.1.13)
где
– количество унифицированных операций
в тесте
,
– время решения задачи
,
которое учитывает как время решения
самой задачи, так и накладные расходы
(на преобразование, ввод-вывод информации)
и т.д.
Среднее унифицированное быстродействие определим
,
(1.1.14)
где
–
вероятность вызова
типовой задачи.
Для однородных систем среднее унифицированное быстродействие определится как
,
(1.1.15)
где N – количество вычислительных модулей в однородной ВС.
Неоднородные ВС, имеют в своём составе n типов вычислительных модулей, поэтому среднее унифицированное быстродействие представится в виде
,
(1.1.16)
При оценке быстродействия ВС все вышеприведенные показатели могут служить основой для получения соответствующих характеристик производительности ВС, хотя принципиальным вопросом здесь является выбор соответствующих тестов. Существует способ использования пиковой производительности для определения составной теоретической производительности ВС, который характеризует зависимость от тактовой частоты, набора функциональных устройств, разрядной сетки и др., хотя совершенно не учитывает взаимодействие структур решаемой задачи и ВС. Для получения реальные оценки производительности осуществляются с помощью создания специальных тестовых наборов. К настоящему моменту наметились три пути создания тестовых наборов:
тесты, разработанные фирмами-изготовителями ВС специально для отработки качества выпускаемой продукции, которые для широкого круга пользователей не применимы,
тесты, разработанные фирмами-изготовителями ВС для широкого круга пользователей, которые применимы в большинстве случаев и дают хорошие результаты. К таким пакетам относятся пакеты Linpack, пакеты группы производителей SPEC, TPC и др. [5-9]. Так, например, пакеты Linpack используются при ежегодном формировании списка TOP 500, в котором определены 500 самых быстродействующих ВС. Этот список можно найти в Internet под указанным именем [7].
третья группа тестов создаётся, как правило, пользователями, и учитывают внутренние условия применения ВС.
Ёмкость памяти ВС, несомненно, является одной из основных характеристик ВС и существенно влияет на быстродействие ВС, а также на её другие важные параметры. Представляют интерес единицы измерения ёмкости памяти ВС и порядок величин, с которыми оперирует современная вычислительная техника. Ниже приведены единицы измерения ёмкости памяти ВС и порядок величин, с которыми оперирует современная вычислительная техника (в круглых скобках приведены английские сокращения):
1 Килобит (KiloBit) = 1 Кбит (KBit) = 1024 бит (Bit) = 210 бит (Bit);
1 Килобайт (KiloByte) = 1 Кбайт (KByte) = 1024 байт (Byte) = 210 байт (Byte);
1 Мегабит (MegaBit) = 1 Мбит = 1024 Кбит = 220 бит;
1 Мегабайт (MegaByte) = 1 Мбайт (Mbyte) = 1024 Кбайт (Кbyte) = 220 байт (byte);
1 Гигабит (GigaBit) = 1 Гбит (GBit) = 1024 Мбит(МBit) = 230 бит (Bit);
1 Гигабайт (GigaByte) = 1 Гбайт (Gbyte) = 1024 Мбайт (Мbyte) = 230 байт (Byte);
1 Терабит (TeraBit) = 1 Тбит (TBit) = 1024 Гбит (GBit) = 240 бит (Bit) ;
1 Терабайт (TeraByte) = 1 Тбайт (TByte) = 1024 Гбайт (GByte) = 240 байт (Byte);
1 Петабит (PetaBit) = 1 Пбит (PBit) = 1024 Тбит (TBit) = 250 бит (Bit);
1 Петабайт (PetaByte) = 1 Пбайт (PByte) = 1024 Тбайт (TByte) = 250 байт (Byte).
Быстродействие памяти характеризуется так же скоростью обмена информацией между памятью и другими устройствами вычислителя. В качестве единицы измерения этой величины используется:
1 бод (boud) = 1 бит/сек (bit per second);
1 Килобод (Kiloboud) = 1 Кбод (Kboud) = 103 бод (boud);
1 Мегабод (Megaboud) = 1 Мбод (Mboud) = 106 бод;
1 Гигабод (Gigaboud) = 1 Гбод (Gboud) =109 бод;
1 byte/s = 1 байт/сек;
1 Килобайт/сек (Кilobyte/s) =1 Кбайт/сек ( Кbyte/s) = 103 байт/сек;
1 Мегабайт/сек (Мegabyte/s) = 1 Мбайт/сек(Мbyte/s) ) = 106 байт/сек.