- •Оглавление
- •Глава 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
- •Литература
2.2.2. Решение системы линейных уравнений методом Гаусса с помощью вс типов «решётка» и «линейка»
Рассмотрим широко известный алгоритм рещения СЛАУ отличающийся простотой реализации. Пусть дана система линейных уравнений (2.2.24):
a11 x1 + a12х2 +…+ a1nхn = a1,n+1
a21 x1 + a22 х2 +…+ a2nхn = a2,n+1
… (2.2.24)
an1 x1 + an2 x2 +…+ ann xn = an,n+1
Решение системы уравнений по компактной схеме [25] заключается в последовательном определении хn, xn-1, ..., x1 из системы уравнений:
x1 + c12х2 +…+ c1nхn =c1,n+1
c12 х2 +…+ a1nхn = a2,n+2
…
xn = cn,n+1
Эта система получается как результат разложения исходной матрицы на треугольные матрицы согласно формулам (2.2.25):
(2.2.25)
b
После вычислений «прямого хода» метода Гаусса получается матрица:
Из рекуррентных соотношений следует, что любой (i,j)-элемент матрицы получается как разность между исходным элементом аij и суммой парных произведений ранее определенных значений bik, находящихся в рассматриваемой строке слева, и соответствующих значений сkj, расположенных в рассматриваемом столбце сверху от вычисляемого значения. При определении значений сij необходимо также выполнить деление на значение bii. Использование метода без выбора ведущего элемента предполагает, что все bii, i = 1, ... , n, отличны от нуля, и деление на bii не приводит к потере точности.
Граф информационных зависимостей алгоритма получения треугольных матриц 4х4 показан на рисунке 2.2.8.
Рисунок 2.2.8. ГУЗ алгоритма получения треугольных матриц для п = 4
Значения xi , i = n, n - 1, ... , 1, вычисляются по формуле:
Значение хn находим при разложении матрицы. Последующие значения хi формируются как разность сi,n+1 и суммы парных произведений предыдущих вычисленных значений хп,..., xi-1 на соответствующие значения сi,n, ... , ci,i-1.
Граф информационных зависимостей для п = 4 показан на рисунке 2.2.9.
2.2.9. Граф информационных зависимостей для п = 4
Поиск неизвестных по элементам верхней треугольной матрицы осуществляется с помощью обратного хода алгоритма Гаусса.
2.2.3. Исполнение алгоритма Гаусса на «решётке» n*n вm
Рассмотрим два характерных случая выполнения алгоритма Гаусса: выполнение на ВС, содержащей n2 ВМ (решетке п*п.) и ВС, состоящей из n ВМ (линейке), где n – число неизвестных системы уравнений.
Пусть ВС с п2 ВМ имеет граф межмодульных связей в котором, каждая вершина с индексами (i,j) графа информационных связей, приведенного на рисунке 2.2.8, отображается в соответствующий ВМij, i = 1, ... , п, j = 2, ... , п + 1. Информационным связям между операторами алгоритма соответствуют передачи данных по межмодульным линиям связи.
Будем полагать, что для программирования передачи данных в передающем ВМ используется оператор send x (а), где х принимает значение u(up), d(down), l(left), r(right) в зависимости от того, какому соседу предназначены для передачи данные а. Аналогично, в принимающем ВМ программирование выборки из входных очередей выполняется посредством оператора receiver x (b), где х принимает значения u, d, l, r в зависимости от того, от какой ВМ идёт приём данных. Принятый элемент данных - b.
Предположим, что в каждый ВМij. начиная с j = 3 по j = п + 1 передан соответствующий элемент aij исходной матрицы коэффициентов системы уравнений, а ВМi2 содержат по два элемента аi1 и ai2.
Вычисления начинаются в ВМ12, который определяет значение 1/b11 = 1/а11 и посылает его правому соседу ВМ13, после чего тот вычисляет с12 = а12/b11 и посылает нижнему соседу ВМ22. Прием данных стартует вычисления в ВМ13 и ВМ22.
ВМ13 передает полученное значение 1/b11 своему правому соседу ВМ14 и вычисляет с13 = а13/b11. Вычисленное значение с13 передается нижнему соседу ВМ23.
ВМ22, получив с12, пересылает это значение нижнему соседнему ВМ32, затем посылает хранящееся в нем значение b21 = а21 правому соседнему ВМ23, а также вычисляет 1/b22 = 1/(a22- b21с12). Далее значение 1/b22 передается в ВМ23.
После описанных выше действий стартуют ВМ32, ВМ23 и ВМ14. Таким образом вычисления ВМ начинаются при приёме данных. Прямой ход заканчивается в ВМn,n+1.
Обратный ход инициируется ВМn,n+1, который сразу по завершении прямого хода имеет вычисленное значение хn, он передаёт его верхнему соседу ВМn-1,n+1 . Получив это значение, ВМn-1,n+1 передает его верхнему соседнему ВМn-2,n+1, а также использует, совместно с полученным от соседнего ВМn-1,n значением сn-1,n, для вычисления xn-l = cn-1,n+l - cn-l,nxn. Далее хп-1 передается в ВМn-2,п+1. Обратный ход завершается определением х1 в ВМ1,n+1.
Представленный способ выполнения параллельных вычислений по алгоритму Гаусса позволяет получить следующую оценку времени реализации [26]: Тn*n = 5n-4 при общем числе операций порядка n3 / 3, что дает оценку ускорения параллельных вычислений порядка п2 /15.
