- •Оглавление
- •Глава 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.8.Исполнение команд
После того, как сформированы код операции и физические операнды (источник и результат) и размещены в буферах, наступает фаза динамической проверки готовности значений операндов для исполнения команды.
Существует ряд ограничений исполнения команды, связанных с доступностью физических ресурсов (функциональных устройств, коммутаторов). Существует 3 метода для организации окна исполнения: одной очереди, многих очередей и метод резервирующей станции.
В методе одной очереди переименование регистров не нужно, так как бит резервирования каждого регистра определяет доступность значений операндов. Регистр освобождается, когда команда исполняется.
В методе многих очередей команды распределяются по очередям в зависимости от своего типа, например, очередь для команд с плавающей точкой.
Метод резервирующей станции был разработан Р.Л.Томасуло в 1967 году и впервые воплощён в вычислительный модульной системе IBM 360/95. После выборки и декодирования команды распределяются по схемам резервирования тех функциональных блоков, где команда будет исполняться. В резервирующей станции команда запоминается и по готовности выдается в соответствующий данному пункту функциональный блок. Выдача происходит только, если команда получила все необходимые операнды, и функциональный блок свободен. Иногда резервирующая станция содержит не сами операнды, а указатели на них в регистровом файле или в переупорядочивающем буфере. Отметим одну особенность рассматриваемой схемы: не требуется, чтобы операнд был обязательно занесен в отведенный для него регистр – он может быть ускоренно передан прямо в резервирующую станцию для немедленного использования или сохранён там для последующего использования.
Рисунок 2.1.1. Процесс функционирования процессора с внеочередным исполнением команд
Эффективность применения внеочередного исполнения команд [18] демонстрирует таблица 2.1.1, в которой приведены значения производительности для микропроцессоров без изменения порядка исполнения команд и с внеочередным исполнением команд, имеющих одинаковое количество функциональных устройств. Процесс функционирования процессора с внеочередным исполнением команд иллюстрирует рисунок 2.1.1.
Таблица 2.1.1
Микропроцессор |
SPECint |
Ускорение |
Mips R5000/180 Mips R10000/180 |
4,82 8,59 |
1,78 |
Pentium/200 Pentium Pro/200 |
5,47 8,09 |
1,48 |
Alpha 21164/600 Alpha 21264/575 |
19,3 30,3 |
1,57 |
2.1.6. Работа с памятью
Часто при применении ВМ случается ситуация, когда вся программа не помещается в оперативной памяти целиком из-за своего большого размера. Но без этого можно обойтись, так как в каждый момент времени «внимание» машины концентрируется на определенных сравнительно небольших участках программы. Таким образом, нужно хранить только используемые в данный момент времени части программ, а остальные части могут быть во внешней памяти. Сложность такого варианта решения проблемы в том, что процессы обращения к оперативной памяти и запоминающих устройствах существенно различаются, и это затрудняет программирование. Решением этой проблемы было появление в 1959 году идеи виртуализации памяти, под которой понимается метод автоматического управления иерархической памятью, при котором программист представляет, что он имеет дело с единой памятью большого размера и высокого быстродействия (виртуальной памятью).
Если используется виртуализация памяти оперативная память выглядит как линейное пространство К адресов. Для задач, которым не хватает такого размера памяти, выделяется большее пространство адресов (виртуальное пространство). При написании программы используют виртуальные адреса, но при выполнении необходимо, чтобы текущие команды и операнды были в оперативной памяти, т. е. нужно соответствие между виртуальными и физическими адресами. Для этого при выполнении программы необходимая информация, на которую ссылается виртуальный адрес, из внешней памяти переписывается в оперативную, а потом её адрес заменяется на физический. Этими операциями занимается операционная система, которая заменяет номера виртуальных страниц на номера физических страниц, находящихся в основной памяти. Трансляция адресов происходит с помощью таблицы страниц, в которой число записей соответствует количеству виртуальных страниц. От способа реализации страничной таблицы зависит эффективность техники виртуальной адресации, потому что при каждом обращении к памяти необходимо прочитать информацию из таблицы страниц. Самый быстрый способ – хранение в специальных регистрах, но если объем таблицы большой, то практически можно использовать только один вариант – хранение таблицы в основной памяти, хотя время доступа к такой информации в два раза больше. Чтобы уменьшить время доступа, можно использовать дополнительное устройство в составе ВМ – буфер быстрого преобразования адреса, которое представляет собой кэш память.
При каждом новом запросе к оперативной памяти транслятор адресов сначала просматривает кэш-память, есть ли там номер требуемой физической страницы, так как при каждой трансляции адресов результат заносится в кэш-память: номер физической страницы в память данных, а виртуальной – в память тегов. Таким образом, в памяти тегов хранятся результаты нескольких последних операций преобразования адресов..
Номер виртуальной страницы |
V |
R |
M |
A |
Номер физической страницы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Память тегов Память данных
Рисунок 2.1.2. Структура буфера быстрого преобразования адресов
Если номер страницы найден в кэш-памяти, то он используется при обращении к памяти. Если поиск неудачен, то процедура преобразования адресов использует страничную таблицу, после чего результат «номер виртуальной страницы – номер физической страницы» записывается в кэш-память. Структура кэш-памяти показана на рисунке 2.1.2.
Каждая запись содержит четыре признака:
Признак присутствия V равен единице, если виртуальная страница в данный момент загружена в основную память. И в памяти данных находится соответствующий номер физической страницы. Если V=0, то преобразователь адреса генерирует сигнал страничного сбоя, и операционная система выполняет загрузку страницы с диска в оперативную память.
Признак использования страницы R равен 1 если к странице выполняется доступ. Этот признак используется в алгоритме замещения страниц для выбора той из них, которую можно удалить из ОП наиболее безболезненно, чтобы освободить место для новой.
3) Признак модификации страниц М служит для определения идентичности страниц, находящихся в ОП и на диске. При удалении страницы из ОП проверяется равенство M=1 (страница изменена), тогда страницу перед удалением обязательно нужно переписать на диск.
4) Признак прав доступа А необходим для защиты информации. Он определяет вид доступа к странице: только для чтения (R), только для записи (W), для чтения и для записи (RW).
Как буфер преобразования адресов обычно используется полностью ассоциативная или множественно-ассоциативная кэш-память с высокой степенью ассоциативности и временем доступа, близким к аналогичным показателям для кэш-памяти первого уровня (L1). Число входов у типовых буферов определяет размер части виртуального пространства, к которой осуществляется быстрый доступ, и обычно невелико(64-256).
