
- •Основные архитектуры параллельных компьютеров
- •Классификация архитектур вычислительных систем. (Классификация Флинна)
- •Модели параллельного программирования. Основные свойства параллельных алгоритмов
- •Модель задача-канал. Основные свойства модели "задача/канал"
- •Модель передачи сообщений
- •Модель параллелизма данных
- •Модель разделяемой памяти
- •Понятие о детерминизме программы
- •Модульность. Виды композиции модулей и/или программ
- •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. Переменные среды исполнения.
Модели параллельного программирования. Основные свойства параллельных алгоритмов
Модели параллельного программирования:
Модель «задача/канал»;
Модель передачи
сообщений;
Модель разделяемой общей памяти;
Модели, использующие параллелизм данных (в следующих вопросах каждая из моделей описана подробнее).
Основные свойства модели параллельного программирования:
Параллелизм (concurrency) – способность выполнять несколько действий (операций, задач) одновременно.
Масштабируемость (scalability) – потенциальные возможности увеличения производительности при увеличении числа процессоров.
Локальность (locality) – предпочтительность использования локальной памяти по сравнению с обращением к удаленной памяти.
Модульность (modularity) – возможность декомпозиции сложных программ на простые компоненты.
Модель задача-канал. Основные свойства модели "задача/канал"
Параллельная программа состоит из одной или нескольких задач. Задачи выполняются одновременно. Число задач может изменяться при выполнении программы.
Задача инкапсулирует последовательную программу и локальную память. Кроме того, набор входных (inports) и выходных (outports) портов определяет интерфейс задачи с ее окружением.
Задача может выполнять четыре основных действия в дополнение к чтению/записи локальной памяти:
послать сообщения на outports
получить сообщения из inports
создать новые задачи
завершить выполнение
Операция посылки сообщения является асинхронной: она завершается немедленно. Операция получения сообщения является синхронной: ее выполнение блокирует задачу до прихода сообщения.
Пары входных/выходных портов могут быть связаны очередью сообщений - программным каналом. Каналы могут создаваться и удаляться, ссылки на каналы могут передаваться в сообщениях, что делает соединения динамическими.
Задачи могут быть отображены на имеющиеся процессоры различными способами; используемое отображение не влияет на семантику программы. В частности несколько задач могут быть отображены на единственный процессор.
Абстракция задача обеспечивает механизм локальности (данные, которые находятся в локальной памяти задачи – это «закрытые» данные, все остальные данные – «удаленные»).
Абстракция канал обеспечивает механизм для индикации того, что в одной задаче потребовались данные другой задачи чтобы выполнить некую обработку (зависимость по данным)
Основные свойства модели «задача/канал»:
Эффективность
Независимость отображения
Модульность
Детерминизм
Модель передачи сообщений
Наиболее широко используемая модель параллельного программирования. Программы этой модели, подобно программам модели процесс/канал, создают множество процессов, с каждым из которых ассоциированы локальные данные. Каждый процесс идентифицируется уникальным именем. Процессы взаимодействуют, посылая и получая сообщения. В этом отношение модель обмен сообщениями является разновидностью модели процесс/канал и отличается только механизмом, используемым при передаче данных.
Возможно:
динамическое создание задач,
выполнение нескольких задач на одном процессоре,
выполнение различных программ различными задачами.
НО в большинстве систем передачи сообщений:
создается фиксированное число идентичных задач при запуске программы;
не поддерживается динамическое управление задачами во время выполнения программы;
используется модель программирования – SIMD: каждая задача выполняет одну и ту же программу, но функционирует на различных данных.