- •Многопроцессорные системы – общая характеристика, актуальность. Области применения. История развития. Виды параллелизма – расслоение памяти, векторно-конвейерная обработка, множественные фу.
- •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 типа – короче команды, промежуточные результаты хранятся в регистре. Недостаток – ограничен размер, затраты на старт векторных операций.
Организация доступа к памяти. В векторных системах - несколько модулей с чередованием. Хорошо при последовательном расположении элементов вектора, но возможны и другие случаи – равнопериодическое, по подматрицам и случайное. При равнопериодическом эффективность определяется в основном организацией памяти, для подматриц – то же + формированием адресов. Случайное хранение – редко.
Конфликты доступа к памяти. Считывание команд, скалярных и векторных операндов, запись результатов мешают друг другу. Для решения этой проблемы CRAY-I имеет память с 4 портами – A и B – для чтения скалярных и векторных данных, - для записи и регистр для ввода/вывода.
Специализация арифметических устройств. Максимальная пропускная способность - когда все АУ загружены полностью. Препятствуют зависимости по данным и управлению. АУ могут быть и многофункциональными. Тогда - значительно сложнее по конструкции и в управлении. Перенастройка – может быть статической и динамической
Конвейерные устройства - линейные и нелинейные.
1 - данные могут проходить только по порядку стадий
2 - возможны возвраты и переходы вперед.
Функции - согласование скоростей и возможность хранить элементы в порядке, отличном от того, в котором они поступают в арифметическое устройство. Кроме того - служит буфером результатов, особенно при зацеплении операций.
Адресное устройство генерирует адреса ОП. Обычно - последовательное расположение. В некоторых системах считывание и запись осуществляются целыми блоками. В других элементы располагаются на некотором равном расстоянии. Тогда адресация производится с использованием операций сложения, выделения подматриц.
Типичный набор векторных команд включает арифметические операции, операции сравнения, команды загрузки и записи в память, команды обработки разреженных векторов. Иногда такие операции, как скалярное произведение или вычисление среднего значения, реализуются с помощью векторных макрокоманд.
Т.к. вырабатывается множество результатов, то состояние не сводится к нескольким флагам. Вместо этого - векторная команда, вырабатывающая флаги состояния и записывающая их в виде вектора.
Хранение в памяти векторных операндов подчиняется 2 противоречивым требованиям – эффективности хранения и эффективности доступа. Обычно выделяют 2 классических схемы размещения, соответствующие 2 типам векторных структур – плотным и разреженным. В 1 сл хранятся все элементы векторов (как правило, последовательные элементы занимают последовательные ячейки). Во 2 случае хранятся ненулевые элементы, а также индекс либо битовый вектор.
Операции над разреженными структурами выполняется так, что обрабатываются только ненулевые элементыты. Т
В системах регистр-регистр, длины участвующих в команде векторов фиксированы. Для работы с векторами произвольной длины существует т.н. режим векторного цикла. Используется векторный цикл, который управляется с помощью скалярных регистров параллельно с выполнением векторных операций. Это позволяет исключить потери, связанные с организацией циклического перехода.
Операции типа скалярного произведения требуют специальных команд, превращающих векторную величину в скаляр. Это называется векторной редукцией. Некоторые процессоры включают специальные команды для таких операций (CYBER 205). В других ( CRAY-I) такие операции осуществляются обычными векторными командами с помощью аппаратного счетчика элементов.