- •Многопроцессорные системы – общая характеристика, актуальность. Области применения. История развития. Виды параллелизма – расслоение памяти, векторно-конвейерная обработка, множественные фу.
- •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 – основные понятия. Функции. Пример – реализация барьерной синхронизации.
Fortran 90 и hpf. Параллельные расширения f90. Основные понятия и директивы hpf. Примеры.
F90 вкл мех-мы орг одновр вып-я, а HPF – доп пар констр и директивы разм-я данных.
FORTRAN имеет давн историю. За вр его разв-я язык сильно изм-ся, приобрел много черт, св-х совр языкам пр-я. В частн, в F90 введ такие воз-сти, как ук-ли, польз типы, модули, опер с масс-ми, рекурс проц-ры и др. Мы ост-ся на тех св-вах, к-е наиб важны для пар пр-я – оп присв-я массивов и встр-е (intrinsic) ф-ции, отн к масс-м.
F90 доп-ет исп-е ряда скал оп-й в д-ях с масс-ми. При этом оп вып-ся над кажд эл-м массива. Уч-е в таких оп-ях мас-вы д б совместимыми, т.е. иметь один рази и «форму». Практ все втр-е оп-ции языка м б прим-ны к массивам.
Вм всего массива в оп может уч-ть секция, опр-я тройкой нач инд:кон инд: черед
Может исп-ся констр WHERE: WHERE(X /= 0) X = 1.0/X. Все встр ф-ции F90 м б прим к массивам (к кажд эл-ту). MAXVAL, MINVAL, SUM, and PRODUCT вып-ют оп-ю редукции. Хотя эти ф-ции дост мощны, они не реал многих необх для пар прогр возм.
HPF предост пр-ту директивы распр данных, к-е дают пр-ту возм упр-ть лок-ю.
Дир PROCESSORS исп для ук-я формы и разм массива абст пр-ров. Дир ALIGN исп-ся для выр-я эл-тов массивов дл отн друга, ук-я что они д б распр один образом. Дир DISTRIBUTE исп для распр об-та (и др об-тов, выр-х по нему) по массиву абстр пр-ров. Распр абст пр-ров по физ зав от реал и не опр-ся в языке, хотя как прав исп=ся 1 физ пр-р на 1 абстр.
Дир распр данных оч сильно вл на эфф-сть пар пр-мы, но не вл на ее корректность. В этом см онисх с «комм-ми распр-я», исп в FM. Одн на деле они б глуб вл-ют на стр-ру пр-мы – вл на все 4 стадии. Эти дир явл лишь рек-ми комп-ру; он может проигн их, если это улучшит пр-сть. Дир PROCESSORS объявл имен-ю конф-ю абстр пр-ров. Пример:
!HPF$ PROCESSORS P(32)
!HPF$ PROCESSORS Q(4,8)
опр-ет 32 пр-ра.
Дир ALIGHN указ эл-ты массива, к-е д б при возм разм-ны совместно (на 1 физ пр-ре). Пример:
!HPF$ ALIGN array WITH target
Директива DISTRIBUTE исп-ся для того, чтобы ук-ть распр-е дан м у проц-ми. Для кажд измерения массива она ук-ет распр-е эл-тов массива по абстр пр-рам. Можно ук-ть 3 способа распр-я:
* : No distribution
BLOCK(n) : Block distribution (default: n= N/P)
CYCLIC(n) : Cyclic distribution (default: n=1))
Специф-р ONTO указ опр массив проц-ров. Дир прим-ся ко всем мас-вам, выровн вместе с ук-м. Т о дир не м б прим непоср к выр-м мас-вам .
HPF добавляет к оп-рам, раб с мас-ми, им-ся в F90, доп констр, обесп б шир возм реал алг-мов, исп-х пар-м данных. Это опер-р FORALL и дир-ва INDEPENDENT.
FORALL ( triplet, ..., triplet, mask ) assignment
где triplet – это:
subscript = lower-bound : upper-bound : stride
Примеры:
FORALL (i=1:m, j=1:n) X(i,j) = i+j
FORALL (i=1:n, j=1:n, i<j) Y(i,j) = 0.0
FORALL (i=1:n) Z(i,i) = 0.0
Дир INDEPENDENT
Утв-ет, что все оп-ры, вып-е с в цикле do while, могут вып-ся в любом порядке и пар-но.
Должна непоср предш-ть циклу, к к-му относится.