- •Вычислительные процессы. Формальная модель. Свойства процесса.
- •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 типа дуг:
дуги следования, определяющие строгую последовательность задач в потоке (из а1 в а2);
дуги порождения, кот. показывают порождения одного потока другим (из а3 в b1);
д уги зависимости, кот. накладывают дополнительные условия на выполнение потока (например: дуга из b3 к a4 показывает. Что для перехода к a4 необоходимо не только выполнение а3 из потока А, но и b3 из потока В).
Ограничения, наклыдываемые на граф:
1) «strict» - дуги зависимости могут идти только от потомков к предкам; таким образом граф становистся ориентированным ациклическим графом;
2) «fully strict» - дуги зависимости могут идти только от потомка к родителю (т. е. дуги от с2 к а3 быть не может, а с2 — b3 может быть).
В качестве ресурса — память — это кадр активации потока. В любой момент времени можно определить, сколько места занимают потоки. Активационная глубина потока — это количество кадров активации самого потока и всех его предков. Активационная глубина вычисления — максимальная активационная глубина потоков в вычислении.
Модель мультипотоковых вычислений позволяет давать оценки:
1) время выполнения;
2) минимальный объем ресурсов памяти, кот. необходим для этого вычислений;
характер масштабируемости вычислений (идеал — линейный рост производительности при увеличении числа процессоров.
W – объем вычислительной работы при выполнении параллельного вычисления — сумма всех элементарных задач во всех потоках. Глубина вершины в графе — это максимально длинный путь от корневой вершины до рассматриваемой. Самый длинный путь в графе называют критическим.
Планирование мультипотоковых вычислений. «Жадный планировщик».
Система с Р процессорами. На каждом шаге вычисления, имея Р свободных процессоров и N готовых к выполнению потоков, планировщик делает один из двух шагов:
1) полный шаг, когда потоков больше или столько же, сколько процессоров → процессор берет из пула любые Р потоков и распределяет по процессорам;
2) неполный шаг, когда потоков меньше, чем процессоров → все потоки отправляются на процессоры.
В случае, если ресурсы ограничены, то это планировщик не очень хорош.
Планирование мультипотоковых вычислений. «Занятые листья».
Планировщик один, имеет общий пул готовых потоков. Обеспечивает обязательное выполнение потоков-листьев (св-во «занятые листья»). Главный минус — это централизованный алгоритм, что мешает масштабированию системы.
Пусть В породил поток А.
1) Если А порождает новый поток Х, то процессор выдается на выполнения потока Х, а А снимается с процессора и складывается в общий пул готовых потоков.
2) Если поток А простаивает в ожидании события, то он снимается с процессора, а планировщик отправляет на выполнение произвольный поток из пула.
3) Если поток А завершается, то процессор освобождается, а планировщик проверяет родителей (поток В) — если у В нет потомков, он не выполняется на каком-то другом процессоре и готов к выполнению, а процессор свободен, то на выполнение ставится В.