- •Многопроцессорные системы – общая характеристика, актуальность. Области применения. История развития. Виды параллелизма – расслоение памяти, векторно-конвейерная обработка, множественные фу.
- •2 Класса архитектур. Общая память – достоинства, недостатки.
- •Классификация Флинна. Примеры.
- •2 Варианта локальной памяти:
- •5. Иерархия памяти в современных компьютерах. Кэш. Терминология. 3 типа кэш-памяти. Стратегии поиска и замещения блоков. Сквозная и обратная запись. Достоинства и недостатки.
- •6. Проблема когерентности кэшей. Кэш с наблюдением (snooping) . Алгоритм mesi.
- •7. Уровни состоятельности. Строгая состоятельность – проблема поиска и проблема синхронизации записи. Владельцы и менеджеры данных. Write-broadcast и write-invalidate схемы записи.
- •Модели с ослаблением состоятельности.
- •Схемы, основанные на каталогах.
- •Виды коммуникационных сред. Составные части. Коммутаторы – простые и составные, с временным и пространственным разделением.
- •Классификация сетей. Терминология. Представление в виде графов. Топологии – решетка, тор, гиперкуб, челнок, дерево и др.
- •Массово-параллельные компьютеры – определение, основные понятия, история. Mpp. Asci Red и Cray t3e.
- •Измерение производительности. Терминология. Время отклика, время цп, таковая частота. Виды тестов. Фирменные тесты. Mips и mflops.
- •Тесты linpack. Ливерморские циклы. Spec. Тесты tpc.
- •Проектирование параллельных алгоритмов. 4 этапа. Характеристика этапов.
- •Декомпозиция – основная задача. 2 метода. Контрольные вопросы.
- •Определение коммуникаций. Варианты. Связь с 1 этапом.
- •Локальные и глобальные коммуникации. Контрольные вопросы.
- •Укрупнение. Цели. Методы. Контрольные вопросы.
- •Время простоя. Пример общей модели.
- •Эффективность и ускорение. Анализ масштабируемости – при фиксированном размере задачи, при переменном размере задачи.
- •Экспериментальные исследования – задачи, характеристика. Сравнение теоретических и экспериментальных данных. Возможные причины отклонений.
- •Модульность в параллельных программах. Виды композиции. Проблема перераспределения данных. Последовательная композиция – spmd. ScaLapack.
- •Параллельная композиция. Конкурентная композиция. Примеры. Правила применения.
- •Анализ производительности программы в целом. Усложняющие факторы. Пример.
- •Средства разработки параллельных программ. Классификация. Pvm – характеристика и идеология. Основные функции.
- •Нити. Синхронизация. Асинхронные коммуникации. Проблема детерминизма. Распределение по процессорам. – 2 фазы. Производительность.
- •Fortran 90 и hpf. Параллельные расширения f90. Основные понятия и директивы hpf. Примеры.
- •OpenMp – идея, технология, основные понятия. Основные директивы. Пример программы.
- •Linda – основные понятия. Функции. Пример – реализация барьерной синхронизации.
5. Иерархия памяти в современных компьютерах. Кэш. Терминология. 3 типа кэш-памяти. Стратегии поиска и замещения блоков. Сквозная и обратная запись. Достоинства и недостатки.
Современные МП - внутрикристальный кэш. Внекристальная память - также кэш и основная. Распределенные системы - удаленная память. Каждый верхний уровень как кэш нижнего - иерархия.
Типовая иерархия памяти:
- (регистры 64-256 слов, 1 такт)
- кэш 1 ур – 8Кслов – 1-2 такта
- кэш 2 ур – 256 кслов – 3-5 тактов
- основная – 4Гслов – 12-55 тактов
- удаленная память – сотни-тысячи
Блок - минимальная единица информации, которая может присутствовать либо отсутствовать в иерархии. Размер блока может быть фиксированным либо переменным. Если фиксирован - размер памяти кратен размеру блока.
Попадание (hit) - успешное обращение к более высокому уровню, промах (miss) - неуспешное. Время обращения при попадании - включает время на определение факта попадания.
Потери на промах – включает время на замещение блока верхнего уровня блоком из нижнего уровня и время пересылки информации. Время на замещение – время доставки и время пересылки. Первое связано с задержкой памяти более низкого уровня, 2-е – с полосой пропускания канала между верхним и нижним уровнем.
Размещение блока в кэше
1. каждый блок имеет фиксированное место – кэш с прямым отображением. Используются младшие разряды адреса.
2. любой блок – на любом месте – полностью ассоциативный кэш.
3. некоторый блок – на ограниченном множестве мест – частично ассоциативный или множественно-ассоциативный.
Как найти блок в кэше?
У каждого блока в кэше имеется адресный тэг, показывающий, какой блок в оперативной памяти он представляет.
Еще необходим способ определения того, что блок в кэше содержит достоверные, пригодные к использованию данные. Обычно – добавление к тегу бита достоверности.
Какой блок должен быть замещен при промахе?
При промахе нужно выбрать блок, который должен быть заменен. При прямом отображении– только один блок проверяется и только он может быть заменен. В других случаях сложнее. Чаще всего - 2 стратегии – случайная и LRU, когда все обращения к блоку фиксируются, и замещается тот, к которому дольше не было обращения. Случайная – проще реализовать. Часто – не менее эффективна.
Сквозная запись (WT,ST) – информация записывается сразу в 2 места – в кэш и в основную память;
Обратная запись (WB,CB,SI) – информация записывается только в кэш. В основную память - когда замещается. Для сокращения частоты копирования с блоком кэш-памяти связывается бит модификации (dirty bit). Если блок не модифицировался, при замещении он не записывается в основную память.
Плюсы и минусы. При обратной записи она выполняется со скоростью кэша, и несколько записей в 1 блок требуют лишь 1 запись в основную память. Сквозная запись проще для реализации. Кроме того, в основной памяти всегда имеется актуальная копия данных.
Когда процессор ожидает завершения записи при сквозной записи - write stall . Минимизация - использование буфера записи (write buffer). Это не полностью исключает write stall!