- •Оглавление
- •Глава 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
- •Литература
5.4.2. Вопросы к разделу 5.4
1. Дайте определение полного множества ВНО.
2. Какие существуют два способа построения матрицы независимости операторов.
3. Для чего в стеке отведены последние две ячейки?
4. В каких случаях осуществляется дизъюнкция очередных строк матрицы независимости?
5. Что является критерием формирования полного множества ВНО?
6. С какой целью может быть использован алгоритм 5.4.2?
Глава 6. Исследование информационных граф-схем со скалярными весами для планирования параллельных вычислений
6.1. Численные характеристики информационных граф-схем со скалярными весами
6.1.1 Определение ранних и поздних сроков окончания выполнения операторов.
При исследовании граф-схем алгоритмов одними из основных характеристик являются ранние и поздние сроки окончания выполнения операторов. Имея эти величины, можно построить планы выполнения операторов с учётом распределения операторов по ВМ. Необходимо подчеркнуть, что на основе граф-схемы алгоритма, можно определить:
1) Частичную упорядоченность выполнения алгоритма.
2) Веса операторов pj, j = 1, …, m (обычно – времена выполнения процедур).
3) Началом отсчёта времени решения задачи является начало выполнения операторов, являющихся входами в алгоритм.
4) Тк – это путь максимальной длины в граф-схеме ( это минимальное время, за которое может быть решена данная задача).
Определение
6.1.1.
Ранний срок окончания выполнения
оператора – это время на оси отсчёта
времени, равное t1,
j =
,
j = 1 . . .m, где
–
время начала выполнения j-ого
оператора, pj
–
время выполнения j-ого
оператора, полученное при минимальном
времени решения задачи Т=Тк.
Определение
6.1.2.
Поздний срок окончания выполнения
оператора – это время на оси отсчёта
времени, равное t2,
j(Т)
=
,
j = 1 . . .m, где
–
время начала выполнения j-ого
оператора, полученное при времени
решения задачи Т >Тк
,
pj
–
время выполнения j-ого
оператора.
Так как величины t1, j и t2, j(Т) играют большое значение для дальнейших исследований, поэтому рассмотрим алгоритмы вычисления ранних и поздних сроков окончания выполнения операторов.
Алгоритм вычисления ранних сроков окончания выполнения операторов.
Алгоритм 6.1.1.
1. Вычислим t1,j: =, где j :=1,…,RS. RS – размер матрицы следования
2. Просматриваются строки матрицы S сверху вниз, выбирается первая необработанная строка матрицы, и осуществляется переход к следующему шагу, если обработаны все строки, то - конец алгоритма.
3. Если выбрана j-я строка, не содержащая единичных элементов, то вычисляем t1,j: = pj , где pj – вес j-го оператора и переходим на шаг 5.
Если j-я строка содержит единичные элементы, то вычисляется
t1,j: =
+
pj,
где max , берётся
по множеству времён t1,j
,
где jq
– номера элементов j-й
строки, равных единице. Если в множестве
есть нулевые элементы, то выполняется
шаг 6, иначе выполняется шаг 5.
5. Обработанная j-я строка исключается из рассмотрения. Осуществляется переход на шаг 3.
6. Выбираем столбец j:=jq и переходим на шаг 3.
Примечание: пункт 6 алгоритма 6.1.1 используется для нетреугольной матрицы S
Алгоритм вычисления поздних сроков окончания выполнения операторов.
Алгоритм 6.1.2.
1. Вычислим t2,j: =0, где j :=1,…,RS. RS – размер матрицы следования.
2. Просматриваем столбцы матрицы S справа налево, выбираем первый необработанный столбец матрицы, переходим к следующему шагу. Если обработаны все столбцы, то - конец алгоритма.
3. Пусть j – номер выбранного необработанного столбца. Если он не содержит единичных элементов, то вычислим t2, j(Т) := T, где Т – время решения задачи, переходим на шаг 5.
4. Если j-й столбец содержит единичные элементы, то вычисляется
t2, j(Т): =min
(Т)-pj},
где
(Т)–
поздние сроки окончания выполнения
операторов, содержащие единицы в j-м
столбце. Если среди единичных элементов
содержится хотя бы один элемент, имеющий
(Т)=0,
то переходим на шаг 6, иначе выполняется
шаг 5.
Обработанный j-й столбец исключаем из рассмотрения, затем выполняется
шаг 2.
6. Выбираем столбец j:=jq и переходим на шаг 3.
Примечание: пункт 6 алгоритма 6.1.2 используется для нетреугольной матрицы S.
Диаграммы выполнения операторов для ранних и поздних сроков – удобный способ наглядного представления многопроцессорной обработки. Структура ИГ, при отображении ранних или поздних сроков окончания выполнения операторов в виде диаграмм, порождает возможные способы распределения операторов по ВМ. Каждая строка (ветвь) диаграммы определяет множество операторов, которое целесообразно разместить на одном ВМ. Если в диаграмме имеется n строк, то целесообразно выбрать n ВМ для решения задачи, соответствующей данной диаграмме. Для такого способа планирования в случае обеспечения минимального времени решения задачи целесообразно использовать ранние сроки окончания выполнения операторов. Для обеспечения заданного времени решения задачи Т>Ткр необходимо использовать поздние сроки окончания выполнения операторов.
Диаграмма размещения операторов на временной оси осуществляется по правилам, приведенным ниже.
Выполнение того или иного оператора отмечается прямоугольниками, имеющими длину, равную весам (времени выполнения) операторов, и правую границу, соответствующую срокам окончания выполнения операторов. Для возможности отображения частичной упорядоченности операторов используются совмещённые временные оси. Прямоугольники нумеруются в соответствии с номерами вершин исследуемого графа и между ними проводятся связи в виде стрелок, как показано на рисунках. Рассмотрим пример построения диаграмм выполнения операторов при Т=Ткр (см. рисунок 6.1.1а) и Т>Ткр (см. рисунок 6.1.1б). Рисунок 6.1.1а иллюстрирует ИГ, для которого вычисляются ранние и поздние сроки окончания выполнения операторов, рисунок 6.1.1б –матрицу следования этой граф-схемы.
Пример вычисления ранних сроков окончания выполнения операторов c помощью алгоритма 6.1.1 для граф-схемы, представленной на рисунке 6.1.1а.
t1,1 = 1, t1,2 = 2+1=3, t1,3 =4+1=5, t1,4 =3+3=6, t1,5 =max{3, 5}+3=8, t1,6 =1+5=6,
t1,7 =2+6=8, =2+6=8, t1,8 = 8+8 =16.
Пример вычисления поздних сроков окончания выполнения операторов c помощью алгоритма 6.1.2 для граф-схемы для Т=18.
t2,8 (18)=18, t2,7(18)=18, t2,6(18)=18, t2,5(18) =18-8=10, t2,4(18)=18-2=16,
t2,3(18)= min {18-1, 10-3}=7, t2,2(18)= min {16-3, 10-3}=7, t2,1(18)= min {7-4, 7-2}=3.
а) б)
Рисунок 6.1.1. Пример ИГ и его матрица следования, для которого вычислены ранние и поздние сроки окончания выполнения операторов
а)
2
4
6
7
3
2
1
б
1
3
5
8
1
0
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
б)
Рисунок 6.1.2. Временные диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов
Как следует из рисунка 6.1.2.а, эта диаграмма определяет минимальное время решения задачи, поэтому именно ей в дальнейшем будет уделено основное внимание, хотя в отдельных случаях может представлять интерес случай, когда Т>Ткр. В этом случае возможно уменьшение требуемого количества ВМ. Вопрос об использовании временных диаграмм для планирования параллельных вычислений весьма интересен. Так, строка 1 на рисунке 6.1.2.а может интерпретироваться как нить для системы параллельного программирования Open MP и других систем программирования, у которых базовым понятием является «нить». Далее, в разделе «Планирование параллельных вычислений для информационных граф-схем», будет подробно рассмотрена эта проблема.
