
- •Оглавление
- •Глава 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
- •Литература
11.6.Определение функций плотности загрузки, и минимальной загрузки для информационных граф-схем
Исследование проблемы загрузки вычислительных модулей в ВС является достаточно сложным процессом. С одной стороны, должны быть учтены многие факторы, связанные с функционированием ВС, с другой – с выполнением параллельной программы. Оценим временные затраты, а также необходимое число ВМ, исходя из условия, что время, затрачиваемое на выполнение оператора тратится ровно столько, сколько указано в весе оператора. Зададим области определения операторов граф-схемы. Отдельный оператор tj задан в области t1,j ≤ tj ≤ t2,j
Пусть А – множество начальных вершин, В – множество конечных вершин.
Зададим области определения интервалов времени выполнения операторов для множества вершин графов в виде трёх неравенств.
tj ≥ pj , j A. (6.1.1)
tj – pj ≥ ti , если существует связь i→j , i X\B, j X\ A. (6.1.2)
tj ≤ T, если j B, (6.1.3)
где T – время решения задач. Эта система неравенств определяет многоугольник МТ в RS-мерном пространстве. Если точка (t1, ..., tRS) MT, то она удовлетворяет системе неравенств (6.1.1), (6.1.2), (6.1.3). RS – размер матрицы S.
Определение 6.1.3. Функция
t1,
t2, …,
tRS,
)
=
,
где OP(tj,)=
плотностью загрузки вычислительной
системы для значений {t1,
…, tRS}
в точке .
В качестве примера вычисления функции PZ рассмотрим диаграмму рисунка 6.1.2.а. Значение функции PZ(1, 3, 5, 6, 8, 6, 8, 16, ) при =1 равно единице, при =3 равно двум, при =6 равно трём.
Зафиксируем моменты окончания выполнения операторов таким образом, чтобы точки (t1, t2, …, tRS ) MT. Значение функции PZ в каждый момент времени формируется в том числе операторами множества ВНО, т.е. в каждый момент времени значение функции PZ совпадает с числом одновременно выполняемых операторов.
Вычислим Q = max{ q1, …, qs}, где qi –множество ВНО, тогда можно утверждать, что
Q
=
t1,
t2, …,
tRS,
),
(6.1.4)
так как возможна ситуация, когда выполняются все операторы максимально полного множества ВНО. Учитывая соотношение (6.1.4), сформулируем лемму 6.1.1.
Лемма 6.1.1. Минимальное число N вычислительных модулей однородной ВС, способных выполнить данный алгоритм за время Т Ткр не превышает f, где f – количество элементов в максимально полном множестве ВНО.
Определение 6.1.3. Функция Z(t1,
…, tRS,
a, b)=
t1,
…, tRS,
)
d
называется загрузкой отрезка [a,
b]
[0,
T] для точки
(t1, …,
tRS)
MT.
С помощью функции Z определяется загрузка отрезка [a,b], выполняемыми на этом отрезке операторами.
Определение 6.1.4. Функция
Z(T)(a,
b)=
называется минимальной загрузкой
отрезка [a, b]
[0,
T] для
точки
(t1, …,
tRS)
MT.
Смысл этого определения заключается в том, что при любом планировании операторов для выполнения при решении задачи за время Т, загрузка отрезка
[a, b] [0, T] не может быть меньше вычисленной величины.
Для составления алгоритма вычисления
данной функции введем функцию
:
x при х 0
=
0 при х < 0
При выборе интервалов для определения минимальной загрузки время окончания выполнения оператора размещается на отрезке [t1,j, t2,j], который случайным образом ложится на рассматриваемый интервал, поэтому целесообразно различные случаи относительного размещения интервалов [a, b]и [t1, j, t2, j]. Все возможные ситуации представлены на рисунке 6.1.3.
t1, j-pj a t1, j t2, j(T) b t a t1, j-pj t2, j(T)-pj b t2, j(T) t
a) б)
t1, j-pj a t2, j(T)-pj t1, j b t2, j(T)
в)
а t1, j-pj t2, j(T) b t t1, j-pj t2, j(T)-pj a b t2, j(T) t
г) д)
Рисунок 6.1.3. Относительное размещения интервалов [a, b] и [t1, j, t2, j].
На рисунке 6.1.3.а оператор при раннем сроке окончания выполнения оператора попадает в рассматриваемый интервал частично. На рисунке 6.1.3.б оператор при позднем сроке окончания выполнения оператора попадает в рассматриваемый интервал частично. На рисунке 6.1.3.в оператор при раннем сроке его окончания и позднем сроке окончания попадает в рассматриваемый интервал частично. При определении минимальной функции загрузки необходимо выбрать его минимальную часть. На рисунке 6.1.3.г оператор попадает в рассматриваемый интервал полностью, поэтому время выполнения оператора включается полностью в рассматриваемый интервал. На рисунке 6.1.3.д оператор включает рассматриваемый интервал полностью, поэтому вклад оператора в загрузку определяется длиной рассматриваемого интервала.
Алгоритм вычисления функции минимальной загрузки отрезка Z(T)(a, b).
Алгоритм 6.1.3.
С помощью алгоритмов 6.1.1 и 6.1.2 вычисляются ранние t1,j и поздние t2, j(T) сроки окончания выполнения операторов.
Полагаем Z(T)(a, b):=0.
Анализируем последовательность операторов j:=1, …,RS.
Вычислим Z(T)(a, b):= Z(T)(a, b)+min{
pj, b-a }
После перебора всех операторов получаем значение Z(T)(a, b).
При разработке и эксплуатации ВС одним из основных вопросов является определение требуемого количества ВМ для решения поставленной задачи за время Т или при заданном количестве ВМ определить, сколько потребуется времени для решения задачи. Ответ на этот вопрос дают две теоремы Барского [4].
Теорема 6.1.1. «Об оценке снизу числа ВМ, необходимых для решения задачи за время Т ».
Для того чтобы N вычислительных модулей было достаточно для выполнения заданного алгоритма за время Т необходимо, чтобы для отрезка[a, b] [0, T] выполнялось соотношение
Z(T)(a, b) N(b-a) (6.1.5)
Доказательство. Согласно лемме 6.1.1 существует неравенство
t1,
t2, …,
tRS,
)
N.
(6.1.6)
Для любого отрезка времени [a, b] [0, T]согласно определению 6.1.4 справедливо неравенство
Z(T)(a, b) Z(t1, …, tRS, a, b). (6.1.7)
По определению 6.1.3:
Z(t1, …, tRS, a, b)= t1, …, tRS, ) d . (6.1.8)
Заменив, используя неравенство (6.1.6), подынтегральную функцию выражения (6.1.8) значением N, и учитывая неравенство (6.1.6), получим выражение (6.1.5).
Отсюда
N Z(T)(a, b)/ (b-a) .
Н
1 1 1
1 1 1
0 1 2 3
Рисунок 6.1.4. Иллюстрация выполнения условия необходимости и достаточности к теореме 6.1.1.
Определим число ВМ, необходимых для решения задачи, представленной граф-схемой на рисунке 6.1.4 Для этого проанализируем минимальную загрузку интервалов [0,1], [1, 2], [2, 3], [0, 2], [1, 3] и [0, 3]:
Z(3)(0, 1)= Z(3)(1, 2)= Z(3)(2, 3)=0, Z(3)(0,2)= Z(3)(1, 3)=3, Z(3)(0, 3)=6.
Согласно теореме 6.1.1 требуется два ВМ. Разместить операторы диаграммы, представленной на рисунке 6.1.4 на двух ВМ, не представляется возможным.
Теорема 6.1.2. «Об оценке снизу времени выполнения задачи при заданном количестве процессоров».
Если Т1 – оценка снизу времени выполнения алгоритма, представленного информационным графом со скалярными весами вершин на ВС, имеющей N процессоров, и на отрезке [a, b] [0, T] выполняется соотношение
тогда наименьшее время Т реализации алгоритма удовлетворяет соотношению
Т
.
Доказательство. Найдём величину
g>0, такую, чтобы
объём работ
выполнялся и при значении Т=Т1+g
на интервале [a,
b+g],
но так же выполнилось условие (6.1.5):
тогда
,
отсюда получим g=d/N.
Алгоритм определения оценки минимального числа процессоров, необходимого для выполнения алгоритма за время Т, составленный на основании теоремы 6.1.1.
Алгоритм 6.1.4.
1. Вычислить N:=0.
2. Последовательно берутся интервалы [a, b] [0, T] в порядке:
[0,1]
[0,2], [1,2],
[0,3], [1,3], [2,3]
…
[0,T], [1,T],…, [T-1,T]. Всего отрезков: Т(Т+1)/2.
3. Для очередного интервала [a, b]
вычислим N1= Z(T)(a,
b) / (b-a)
,
где Z(T)(a,
b)
определяется по алгоритму 6.1.3.
4. Если N1>N, то N:= N1.
5. После обработки всех интервалов, получается требуемое N .
Алгоритм определения оценки минимального времени Т выполнения заданного алгоритма на ВС, содержащей N процессоров, составленный на основании теоремы 6.1.2.
Алгоритм 6.1.5.
1. Вычислим Т:=Ткр.
Просматриваются интервалы [a, b] [0, T], как в алгоритме 6.1.4 пункте 2.
Примечание. При таком выборе последовательности отрезков значение T можно увеличивать, не пересчитывая при этом ранее вычисленные значения d.
Для очередного интервала [a, b]вычислим значение
d:=
Z(T)(a,
b)-N(b-a),
где Z(T)(a, b) определяется по алгоритму 6.1.3.
Если d>0 вычисляется
T:=T+]d/N[.
где ]x[ – ближайшее целое, не меньшее x.
5. Вычислим t2, j(T):= t2, j(T)+]d/N[, j=1, …, RS
6. После обработки всех интервалов вычисляем значение Т – нижнюю оценку
минимального времени выполнения данного алгоритма на данной ВС.