- •Оглавление
- •Глава 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
- •Литература
7.10.Аппаратные и программные средства, необходимые для мультитредовой архитектуры
Тред - это часть программы, которая должна обеспечивать быстрый обход графа управляющих зависимостей. Для этого блок-планировщик мультитредового процессора собирает информацию о структуре потока управления программы, например, какие единицы обработки могут быть преемниками любой единицы обработки в ГУЗ. Эта информация хранится в специальном описателе единицы обработки. Описатели тредов записывают либо внутри текста программы, либо в отдельном файле. Блок-планировщик определяет порядок назначения тредов на выполнение вычислительным модулем.
Обработка регистровых значений происходит следующим образом. В результате статического анализа ГУЗ компилятором формируется маска создания. Если треду необходимо значение, он ждёт, пока это значение не будет произведено предыдущим тредом или он находит это значение внутри локальной области памяти, переданной по кольцу тредом-предшественником.
До запуска выполнения программы не представляется возможным определить какие регистровые значения будут созданы в процессе вычисления, так как единица обработки может содержать множество базисных блоков, зависящих от обрабатываемых данных.
Последовательная семантика предполагает при завершении работы треды передачу другим тредам его модификации регистра. Ожидание выполнения всех команд треда не выгодно, так как это приводит к ожиданиям другими тредами значения, которое уже является доступным.
С помощью компилятор определяется последняя команда в единице обработки, которая модифицирует соответствующий регистр. Эта команда в дополнение к выполнению определенной операции отправляет результат следующим тредам. Сам процессорный элемент не может определить, какие команды выполняются на самом деле назначенным ему тредом и его последнюю команду. Компилятор разбивая граф управляющих зависимостей на единицы обработки обозначает границы обработки и узлы передачи управления. Команда в одном из этих узлов передачи управления может быть отмечена специальными условиями остановки так, чтобы при таких условиях процессорный элемент мог определить остановку выполнения команды. Также можно использовать специальные биты (пересылки и останова) для пересылки и завершения треда.
Для того чтобы несколько команд выполнялось в одном такте используется распределение тредов по ВМ. Когда тред ожидает получения значения или новых команд процессорный элемент может выполнять бесполезные вычисления или ожидать. Бесполезные вычисления появляются из-за использования неправильных данных или неправильного предсказания. Чтобы уменьшить потери, связанные с бесполезными тактами работы, следует повышать правильность предсказаний направления вычислений, обеспечивая синхронизацию ВМ по данным, а также верно устанавливать факт необходимости отмены.
Мультитредовая архитетура обладает многими преимуществами:
1) Общее количество команд, находящихся в обработке, значительно превышает размер окна исполнения суперскалярного процессора и тактовая частота не лимитируется размером окна исполнения, так как в рамках одного треда может выполняться предсказание переходов, переименование регистров и динамическая подготовка команд к исполнению.
2) Мультитредовый процессор даёт более дальние предсказания и большую вероятность выбора правильного направления вычислений.
3) В отличие от суперскалярной архитектуры мультитредовая архитектура обладает следующими свойствами: равное быстродействие выполнения регистровых команд и команд доступа в память, эффективное использование множества функциональных устройств, быстрое обслуживание прерываний, и возможность работы в режиме жесткого реального времени, вычисления в микропроцессорах эффективно совмещаются с обменами данными между ВМ.
4) При большом размере окна в мультитредовой реализации только несколько команд должны быть рассмотрены в каждый момент времени на предмет выдачи результатов. Для суперскалярных процессоров наличие широкого окна исполнения делает трудоёмким контроль результатов выполнения всех команд в этом окне и увеличивает число отложенных команд.
5) Суперскалярный процессор не рассматривает ГУЗ программы, поэтому каждый переход должен выбираться наугад, что приводит к снижению точности предсказания и производительности.
6) В мультитредовом процессоре реализации команды загрузки и записи могут выполняться независимо, без знания последовательности выполнения команд загрузки и записи в треде-приемнике или предшественнике, в суперскалярной архитектуре команды загрузки и записи могут выполняться только последовательно с другими командами и помещаются в буфер вместе с адресом доступа к памяти.
7) Отличие многопроцессорной системы от мультитредового процессора состоит в том, что для многопроцессорной системы необходимо разделение программы на процессы, зависимости между которыми известны, а мультитредовый процессор не требует никакого предварительного знания о связях команд по управлению и данным.
8) Мультитредовая архитектура позволяет добиться более высоких значений эффективности использования вычислительных модульных ресурсов процессора, чем другие типы архитектур, так как компиляторы и аппаратура работают совместно для статического и динамического поиска параллелизма в последовательных исходных программах.
