
- •Основные архитектуры параллельных компьютеров
- •Классификация архитектур вычислительных систем. (Классификация Флинна)
- •Модели параллельного программирования. Основные свойства параллельных алгоритмов
- •Модель задача-канал. Основные свойства модели "задача/канал"
- •Модель передачи сообщений
- •Модель параллелизма данных
- •Модель разделяемой памяти
- •Понятие о детерминизме программы
- •Модульность. Виды композиции модулей и/или программ
- •10. Пример параллельного алгоритма: конечные разности.
- •11. Основные этапы разработки параллельной программы.
- •12. Декомпозиция. Цели. Виды декомпозиции. Итоги этапа декомпозиции.
- •Д екомпозиция по данным
- •Ф ункциональная декомпозиция
- •13. Коммуникация. Виды коммуникаций: локальные, глобальные,динамические, асинхронные. Распределенные коммуникации ивычисления. Итоги.
- •Локальные/глобальные.
- •Синхронные/асинхронные.
- •Статические/динамические.
- •С труктурные/неструктурные.
- •16. Анализ эффективности параллельных алгоритмов. Система показателей оценки характеристик параллельной программы. Асимптотический анализ. Эффективность параллельной программы
- •Система показателей оценки характеристик
- •Соглашения о терминах
- •Принятая в mpi нотация записи
- •23. Базовые функции mpi (минимальный набор)
- •24. Библиотека mpi. Организация приема/передачи данных между отдельными процессами
- •Функции приема/передачи сообщений с блокировкой
- •Основные функции приема/передачи сообщений без блокировки
- •Совмещенные прием/передача сообщений
- •25. Библиотека mpi. Коллективные функции
- •Функции коллективного обмена данными
- •26. Библиотека mpi. Глобальные вычислительные операции над распределенными данными
- •27. Библиотека mpi. Обеспечение модульности. Коммуникаторы, группы и области связи
- •Два взаимосвязанных механизма:
- •Основные понятия (группа):
- •Основные понятия (коммуникатор):
- •28. Библиотека mpi. Проблемы использования различных типов данных. Пользовательские типы данных
- •Пользовательские типы данных:
- •Характеристики типов:
- •29. Библиотека mpi. Производные типы данных и передача упакованных данных
- •Механизмы эффективной пересылки данные разных типов:
- •Производные типы данных:
- •Характеристики типов:
- •Передача упакованных данных:
- •Технология OpenMp. Стратегия подхода.
- •Директивы OpenMp. Формат записи директив.
- •Директивы OpenMp. Области видимости директив. Типы директив.
- •Директивы OpenMp. Определение параллельной области.
- •Директивы OpenMp. Распределение вычислений по потокам.
- •Директивы OpenMp. Синхронизация.
- •Директивы OpenMp. Управление областью видимости данных.
- •37. Библиотека функций OpenMp. Функции контроля параметров среды исполнения.
- •38. Библиотека функций OpenMp. Функции синхронизации.
- •39. Технология OpenMp. Переменные среды исполнения.
13. Коммуникация. Виды коммуникаций: локальные, глобальные,динамические, асинхронные. Распределенные коммуникации ивычисления. Итоги.
Это второй этап процесса разработки параллельной программы.
Цели взаимодействия (коммуникации):
определяются взаимодействия, требуемые для координации выполнения задачи;
определяются соответствующие коммуникационные структуры и алгоритмы.
Задачи выполняются параллельно, но они не могут, в большинстве случаев, выполняться независимо; вычисление, которое нужно выполнить в одной задаче обычно требует данные, связанные с другой задачей; чтобы процесс вычислений продолжался, данные должны передаваться между задачами; этот поток информации определяется в коммуникационной фазе проектирования.
Основные шаги:
определение структуры каналов, которые связывают напрямую или косвенно задачи (потребители), которым необходимы данные, и задачи (поставщики), которые формируют эти данные;
определение сообщений, которые будут передаваться по каналам;
оптимизация затрат.
Виды коммуникаций:
Локальные/глобальные.
Локальные взаимодействия: структура локального взаимодействия формируется, когда операция требует данных от малого числа других задач. Определяются каналы, которые связывают задачу, ответственную за выполнение операции (потребитель) с задачами, имеющими требуемые данные (производители). Определяются соответствующие операции посылки и получения в задачах производителях и потребителях, соответственно.
Примеры:
м
етод конечных разностей Якоби
, где многомерная сетка итеративно модифицируется, заменяя значение в каждой точке некоторой функцией значений в малом, фиксированном числе соседних точек.
Метод конечных разностей Гаусса-Зейделя
Г
лобальные
взаимодействия: операция, где должны
участвовать много задач. При выполнении
этих операций определение индивидуальной
пары производителя / потребителя
затруднено. Может приводить к избыточным
взаимодействиям. Может ограничивать
возможности параллельного выполнения.
Примеры:
операция редукции
Синхронные/асинхронные.
С
инхронные…
(хз, что-то вроде «одна задача отправляет
сообщение в то время, как другая задача
его ждёт»)
Асинхронные взаимодействия: задачи, которые обладают данными (производители), не способны определить, когда другие задачи (потребители) могут затребовать данные. Потребители должны явно запросить данные от производителей.
Эта ситуация обычно возникает, когда вычисление структурировано как набор задач, которые должны периодически читать и/или записывать элементы разделяемой структуры данных. Предположим, что эта структура данных слишком большая или слишком часто запрашивается, чтобы быть инкапсулированной в одиночной задаче. Следовательно, необходим механизм, который позволяет этой структуре данных быть распределенной при обеспечении асинхронных операций чтения и записи его компонент.
Стратегии асинхронных взаимодействий:
Структура данных распределена среди вычислительных задач (прерывание для выполнения ожидающих запросов);
Распределенная структура данных инкапсулирована в набор задач, ответственных только за отклик на запросы чтения и записи;
Модель программирования с использованием разделяемой общей памяти.