- •Вычислительные процессы. Формальная модель. Свойства процесса.
- •2. Система процессов. Независимые процессы. Взаимодействие процессов.
- •Показатели параллельных вс и вычислений
- •4. Классы параллельных вс
- •5. Синхронная и асинхронная организация обмена сообщениями. Rdma.
- •Mpi: Стандарт mpi. Общие понятия. Области связи и коммуникаторы.
- •Общие процедуры mpi: Инициализация, Завершение.
- •Общие процедуры mpi: Определение общего числа параллельных процессов в группе. Определение номера процесса в группе.
- •Прием/передача сообщений между отдельными процессами (связь "точка-точка").
- •Посылка сообщения
- •Прием сообщения
- •Посылка и прием сообщения:
- •Mpi: Групповые (коллективные) взаимодействия. Рассылка целого сообщения процессам. Сборка данных от процессов. Групповые (коллективные) взаимодействия
- •Рассылка целого сообщения процессам
- •Сборка данных от процессов
- •Mpi: Групповые (коллективные) взаимодействия: Рассылка частей сообщения процессам. Сборка частей сообщения с процессов. Рассылка частей сообщения процессам
- •Выполнение глобальных операций с возвратом результатов во все процессы
- •Mpi: Синхронизация процессов. Синхронизация процессов
- •Mpi: Виртуализация топологии.
- •Декартова топология
- •Топология графа
- •Программирование мвс с общей памятью. Процессы и потоки в posix
- •OpenMp: Общие понятия. Область применения.
- •17. Директивы OpenMp: Директивы для определения параллельной области.
- •18. OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива for.
- •19. OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива sections. Директива single.
- •20. OpenMp: Директивы для распределения вычислений внутри параллельной области: Объединение директив parallel и for (sections).
- •Проблема тупиков в параллельных программных системах. Виды тупиков. Методы борьбы с тупиками в параллельных программных системах.
- •22.Централизованный метод обнаружения тупиков в параллельных программных системах
- •23. Децентрализованный метод обнаружения тупиков в параллельных программных системах
- •24.Предотвращение тупиков в параллельных программных системах
- •Синхронизация логического времени в параллельных программных системах
- •Синхронизация физического времени в параллельных программных системах
- •Распределение процессов по процессорам. Критерии и подходы. Распределение статической системы процессов.
- •28. Распределение процессов по процессорам. Централизованный метод “Up-Down”
- •29. Распределение процессов по процессорам. Иерархический алгоритм.
- •30. Распределение процессов по процессорам. Стохастические алгоритмы.
- •31. Формальные модели параллельных вычислений
- •Модель мультипотоковых вычислений Блумова-Лейзерсона
- •Планирование мультипотоковых вычислений. «Жадный планировщик».
- •Планирование мультипотоковых вычислений. «Занятые листья».
- •Планирование мультипотоковых вычислений. «Похитетель работ».
Показатели параллельных вс и вычислений
Гранулярность параллельного вычисления определяет, что есть шаг процесса, что есть элементарное неделимое действие, из которого состоит процесс.
-Мелкогранулярные вычисления-процесс на уровне команды процессора
-Крупногранулярные вычисления
Процесс сопоставляется:
С процедурой
С задачей
Есть 3 группы показателей:
Показатель производительности
Показатель эффективности
Показатель масштабируемости
Показатель производительности:
W-выч работа
TW – время выполнения работы
P=W/Tw
Производительность (объем работы в еденицу времени):
Еденица работы/еденица времени=команда/сек
Пакеты бенчмарки
Синтетические бенчмарки
Бенчмарки на основе типовых задач (процедура обработки инф.)
Бенчмарки на основе смеш команд
Производительность ПВС
Производительность 1го процесса = P1
Pn производительность ПВС с числом процессоров равным n.
Пиковая (Pпик=n*P1)
Реальная
Реальная производительность:
1 – реальная производительность растет к мн-й области эф-ой масштаб-ти.
2 – произв все еще повышается – все еще наращивается производит при увеличении числа процессов, масштабируемость сохраняется.
Увеличивая число процессов мы как правило увеличиваем и число др ресурсов.
Параллельное ускорение
Параллельное ускорение – отношение времени решения задачи на последовательной машине ко времени решения на параллельной машине.
S=Tпосл/Tпарал ВС В этом показателе отражены как свой-ва ВС, так и программы.
Под T посл может пониматься:
-Время выполнения программы на однопроцессорной машине T1 Sусн(n)=T1/Tn
-Время решения задачи последовательным алгоритмом, Tseg Sp/p(n)=Tseg/Tn
-Оценка времени последовательного выполнения по численному методу, Tf Sf=Tf/Tn
Ассимптотическая оценка показателя пар-го ускорения
Sасс=lim S(n),при n->бесконеч
Sбесконечность=Tn/Tбескон
Коэффициенты пар-го ускорения:
K(n)=S(n)/n
Масштабируемость Это способность ПВС обеспечивать рост производ с коэф, близким к линейному, при увеличении числа процессов и/или размерности задач.
«закон Алерала»: Если в составе пар-ой программы есть последовательный участок, кот составляет m-ую часть этой программы то макс ускор реализации этого алгоритма:
Sасс=1/m
4. Классы параллельных вс
Параллельные вычислительные системы:
МВС с общей памятью
Д-данные
К-команды
А-адрес
S-вектор сост
Каждый процессор работает по своей программе (Р) В памяти хран и Д, и К.
Р={Pa,Pb,…,Px}
Прога А реализует процесс Ра. SA – вектор сост проц РА (на память, регистры и общ память)
Ячейка <looh> max на пересечении SA и SX. ПВС с ОП позволяет реализ сис процессов, в кот для Pi,PJ принадлежат P, Pi не равно PJ
«+»: не надо перепроектировать проект, хорошая переносимость
«-»: проблема масштабируемости; проблема увелич числа процессов
Мультипроцессорные ВС (пр: серверы) Symmentic MultiProcessor
SMP (симметрич МВС) – в них процессоры одинок, они имеют одинак возможности доступа к памяти
- любой пример может может обратится к любой общей памяти
- временные хар-ки обращ пр-сора к памяти одинак для всех, пр-сов этой системы.
Многоядерыне микропроцессоры
Также постр с SMP, но в качестве пр-ра выст пр-е ядра. Один нюанс связ с иерарх памяти
Большинство примеров имеет L1 и L2.
Как правило, L1 явл раздел(физически) ( по гарвард архит)
L2, как правило, явл общ кэшем(нет разделения на команды и данные). М/б и раздел и общ.
Intel – общ L2
AMD – раздел L2
Если есть L3, то он явл общим
На сегодня n=2…8 (SMP) явл серийным
МВС с обменом сообщениями (MPP)
*-блок систем интерепретации, обеспеч пересылку сообщ
Если 2 пар-ра формир обращ к <looh> , то они попадают в разные памяти. Кажд выполн команды и данные.
П-ры не могут (физически) формировать адреса и обр к памяти друг процессов
«+»: пр-ры не сталкиваются друг с другом не вызывают конфликтов
Легче и проще масштабируется
«-»: прогер в явном виде прописывает обращение
Много t
Хуже с передачей
MPP – message Passing Processors