- •Оглавление
- •Глава 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
- •Литература
6.2.5. Вопросы к разделу 6.2
1. В чём отличие распределения операторов решаемой задачи для ВС с общим полем памяти от ВС с разделяемой памятью.
2. Постройте матрицу дистанций для обобщённого четырёхмерного куба.
3. Как строятся нити на базе диаграмм ранних сроков окончания выполнения операторов?
4. Стратегии планирования использования ВМ при планировании логических операторов.
5. Как учитывается время обмена информацией при планировании вычислений для ВС с распределённой памятью?
6. Способ построения матрицы следования для для граф-схемы алгоритма решаемой задачи на ВС с распределённой памятью при использовании ВМ с одновременной передачей информации.
7. При загрузке нитей в ВС чему следует отдать предпочтение: увеличению числа процессоров в системе или увеличению степени вершин коммуникационной среды?
8. Изобразите диаграмму трансляционно-циклического обмена для пяти ВМ.
Глава 7. Исследование информационных граф-схем решаемых задач с векторными весами для планирования параллельных вычислений
7.1 Информационная граф-схема решаемых задач с векторными весами вершин
7.1.1 Понятие об неоднородных системах
В вычислительной практике наряду с однородными системами получают всё большее распространение неоднородные вычислительные системы (НВС). В неоднородные ВС входят разнотипные вычислительные модули, объединённые с помощью коммутационных сред, обеспечивающих обмен данными меду ними. Программные модули, которые предполагается решать на разнотипных ВМ, имеют, как правило, различные времена решения. В связи с этим, у каждой вершины граф-схемы решаемой задачи появляется вектор времени решения рассматриваемой задачи. Размер вектора времени решения определяется количеством типов ВМ. Пусть, например, НВС имеет три типа ВМ, тогда задача, которую предполагается решать на рассматриваемой неоднородной вычислительной системе можно представить в виде граф-схемы, как показано на рисунке 7.1.1.
(2,8,4)
(1,5, )
(7,4, )
(4, , ) (2,6, )
Рисунок 7.1.1. Граф-схема задачи, которая будет решаться на неоднородной вычислительной системе.
Как правило, веса составляющих вектора
j-й вершины
(pj,1,
pj,2,
…, pj,n)
упорядочиваются следующим образом:
составляющая вектора pj,1
определяет время решения программного
модуля на первом типе ВМ, pj,2
– на втором и т.д. Символ «
»
обозначает, что рассматриваемый модуль
на данном типе процессора не может
выполняться. Так, на рисунке 7.1.1 оператор
2 не может быть выполнен на третьем типе
процессора. Для исследования граф-схем,
предназначенных для решения на НВС,
упорядочим составляющие векторов веса
в порядке неубывания, не теряя при этом
информацию о принадлежности составляющей
к типу ВМ, исключив при этом символ «
»,
уменьшив при этом размерность
соответствующего вектора. Преобразуем
граф-схему с векторными весами в
граф-схему со скалярными весами, используя
следующее правило: каждая j-я
вершина с векторным весом образует n
вершин, где n размерность
вектора
.
Преобразованная граф-схема показана
на рисунке 7.1.2.
Выделяя вершины с одинаковыми типами ВМ, получим граф-схемы частей задачи, решаемых на соответствующих типах ВМ. Эти граф-схемы будем обозначать как G=(X, P, I, Г), где i I – тип ВМ, за которым закреплён оператор j X и называть G - выборкой граф-схемы G. При анализе векторных граф-схем, с помощью методов, применяемых для скалярных граф-схем, сложность решения задачи возрастает в
Q
=
,
где qj – размерность j-ого вектора, n – количество векторов в рассматриваемой граф-схеме. Для рассматриваемой граф-схемы рисунка 7.1.2 количество G-выборок составит G=3*2*2*1*2=24. В G-выборках каждый оператор закреплён за определённым процессором.
2(1) 4(3) 8(2)
1(1) 5(2) 4(2) 7(1)
4(1) 2(1) 6(2)
Рисунок 7.1.2. Преобразованная граф-схема задачи с векторными весами в граф-схему со скалярными весами вершин
Для уменьшения сложности решения задач, представленных векторными граф-схемами, путём сведения их решения к Q задач со скалярными весами небезинтересной является теорема об уменьшении количества скалярных граф-схем для данной векторной граф-схемы.
Теорема 7.1.1
Если
{Ni}, i=1, …, k, – набор ВМ вычислительной системы,
оператор z входит только в одно полное множество ВНО с числом операторов r,
компоненты веса вершины оператора z упорядочены по не убыванию так, что pz1 pz2 pz,s
,
pz,s+1=
… = pz,k=
при
s < k,
где s – количество
процессоров способных выполнить данную
операцию.существует положительное w < s такое, что при w = 1, 0 r Ni ,
а при w
> r,
,
то при исследовании и выполнении планов данного последовательного алгоритма можно положить pz,w+1=…=pz,w+s= , что приводит к исключении процессоров соответствующих типов, начиная с номера w+1, из рассмотрения при поиске вариантов назначения оператора z.
Доказательство. Очевидно, что если исключить оператор z, входящий в одно полное множество ВНО, оставив неизменными моменты окончания других операторов, входящих в это множество, оператор z не выполнять, то общее время решения задачи не увеличится. Если время решения задачи оператора z на одном из r процессоров не больше, чем на каждом из
вычислительных модулей, то размещение
оператора z на одном из
ВМ
заставит простаивать ВМ из множества
z. Теорема доказана.Таким
образом, при определённых условиях,
имеется возможность исключить некоторые
типы процессоров, что, как правило,
приводит к сокращению времени решения
задачи.
Рассмотрим пример.
(1,3,2)
(3, ,1)
(6,5, )
(5,5,1)
( ,2,3) (1,2,2)
Рисунок 7.1.3. Граф-схема задачи с векторными весами
В данном примере рассматривается ВС с тремя типами процессоров по одному процессору каждого типа. Образуется три множества ВНО : ВНО1 = {1}, ВНО2 = {(2), 3}, ВНО3 = {(4), 5}. Для ВНО1: r=1, N1=1 и неравенство пункта 4 теоремы выполняется, тогда в операторе 1 целесообразно взять веса (1, , ). Для ВНО2: не выполняется условие (3) теоремы – соответствующие веса не упорядочены. Для ВНО3: : r=2, N1=1, w=2. неравенство пункта 4 запишется в виде: 1 2 2. Для четвёртой вершины целесообразно выбрать веса – (1, 1, ). Общее число выборок для граф-схемы, представленной на рисунке 7.1.3 до применения теоремы 7.1.1 равно R=3*2*2*3**3*2=216, после применения теоремы – R =1*2*2*2*3*2=48. Если к каждой выборке применять рассмотренные выше методы исследования для однородных ВС, то трудоёмкость определения параметров неоднородных ВС после применения теоремы 7.1.1 сокращается почти в пять раз. В отдельных случаях для анализа неоднородных ВС применяются младшие G-выборки графа G*, поэтому могут оказаться полезными следующие определения.
