- •Многопроцессорные системы – общая характеристика, актуальность. Области применения. История развития. Виды параллелизма – расслоение памяти, векторно-конвейерная обработка, множественные фу.
- •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 – основные понятия. Функции. Пример – реализация барьерной синхронизации.
Классификация Флинна. Примеры.
Классификация Флинна предполагает в своей основе следующие два вида параллелизма: независимость потоков заданий (команд), существующих в системе, и независимость (несвязанность) данных, обрабатываемых в каждом потоке. Классификация до настоящего времени еще не потеряла своего значения. Однако, как и любая классификация, она носит временный и условный характер. Своим долголетием она обязана тому, что оказалась справедливой для ВС, в которых ЭВМ и процессоры реализуют программные последовательные методы вычислений. С появлением систем, ориентированных на потоки данных и использующих ассоциативную обработку, классификация может быть некорректной.
Согласно данной классификации существуют четыре основные архитектуры ВС, представленные на Рис. 2:
1) одиночный поток команд - одиночный поток данных (ОКОД), в английской аббревиатуре Single Instruction Single Data (SISD), - одиночный поток инструкций - одиночный поток данных;
2) одиночный поток команд - множественный поток данных (ОКМД), или Single Instruction Multiple Data (SIMD), - одиночный поток инструкций -множественный поток данных;
3) множественный поток команд - одиночный поток данных (МКОД), или Multiple Instruction Single Data (MISD), - множественный поток инструкций - одиночный поток данных;
4) множественный поток команд - множественный поток данных (МКМД), или Multiple Instruction Multiple Data (MIMD), - множественный поток инструкций - множественный поток данных.
Процессоры для ММПС – серийные и специализированные. Векторная обработка – принцип, 2 вида процессоров. Конвейер – основные понятия. Факторы снижения производительности. Строение векторных команд. Организация данных в памяти. Команды реорганизации и редукции.
Во многих случаях – серийные (Power PC, Intel). Чаще – векторные. Принцип векторных - одна операция над многими элементами данных (SIMD).
Реализация на скалярных – трудности:
- перед каждой операцией – вызов и декодирование команды;
- для каждой команды – вычислить адреса данных;
- обмен с памятью – возможна конкуренция;
- команды построения цикла затрудняют опережающий просмотр.
Устраняется путем введения векторных команд. 2 типа систем: Матричные состоят из множества ПЭ, организованных так, что они исполняют векторные команды, задаваемые одним устройством управления, каждый ПЭ работает с одним элементом данных.
Конвейерные системы - один или несколько конвейерных процессоров, выполняют векторные команды путем засылки в конвейер элементов вектора с интервалом = длительности стадии. Скорость вычислений зависит только от длительности стадии.
Типичная организация векторной системы:
- блок обработки команд - выбор и декодирование команд;
- векторный процессор - исполняет векторные команды;
- скалярный процессор - скалярные команды
- память.
Скалярные вычисления – чтение, сложение, запись, приращение-проверка, условный переход.
В общем случае время прохождения разных ступеней разное. Это снижает производительность. Для выравнивания нагрузки - 2 основных метода:
- межстадийная буферизация;
- дублирование медленных ФУ.
Существует ряд факторов, снижающих производительность системы, в частности:
- закон Амдаля;
- накладные расходы на старт конвейера;
- зависимости по данным и особенно по управлению.
- размер буфера команд. Его объем должен быть достаточен для постоянной подпитки управляющих устройств.
- размер буфера данных. Для сокращения времени доступа к памяти – расслоение на несколько банков и обеспечение параллельного доступа к ним.