Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Answers.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
522.63 Кб
Скачать
  1. Модели параллельного программирования. Основные свойства параллельных алгоритмов

Модели параллельного программирования:

  • Модель «задача/канал»;

  • Модель передачи

  • сообщений;

  • Модель разделяемой общей памяти;

  • Модели, использующие параллелизм данных (в следующих вопросах каждая из моделей описана подробнее).

Основные свойства модели параллельного программирования:

  • Параллелизм (concurrency) – способность выполнять несколько действий (операций, задач) одновременно.

  • Масштабируемость (scalability) – потенциальные возможности увеличения производительности при увеличении числа процессоров.

  • Локальность (locality) – предпочтительность использования локальной памяти по сравнению с обращением к удаленной памяти.

  • Модульность (modularity) – возможность декомпозиции сложных программ на простые компоненты.

  1. Модель задача-канал. Основные свойства модели "задача/канал"

  1. Параллельная программа состоит из одной или нескольких задач. Задачи выполняются одновременно. Число задач может изменяться при выполнении программы.

  1. Задача инкапсулирует последовательную программу и локальную память. Кроме того, набор входных (inports) и выходных (outports) портов определяет интерфейс задачи с ее окружением.

  2. Задача может выполнять четыре основных действия в дополнение к чтению/записи локальной памяти:

  • послать сообщения на outports

  • получить сообщения из inports

  • создать новые задачи

  • завершить выполнение

  1. Операция посылки сообщения является асинхронной: она завершается немедленно. Операция получения сообщения является синхронной: ее выполнение блокирует задачу до прихода сообщения.

  2. Пары входных/выходных портов могут быть связаны очередью сообщений - программным каналом. Каналы могут создаваться и удаляться, ссылки на каналы могут передаваться в сообщениях, что делает соединения динамическими.

  3. Задачи могут быть отображены на имеющиеся процессоры различными способами; используемое отображение не влияет на семантику программы. В частности несколько задач могут быть отображены на единственный процессор.

Абстракция задача обеспечивает механизм локальности (данные, которые находятся в локальной памяти задачи – это «закрытые» данные, все остальные данные – «удаленные»).

Абстракция канал обеспечивает механизм для индикации того, что в одной задаче потребовались данные другой задачи чтобы выполнить некую обработку (зависимость по данным)

Основные свойства модели «задача/канал»:

  • Эффективность

  • Независимость отображения

  • Модульность

  • Детерминизм

  1. Модель передачи сообщений

Наиболее широко используемая модель параллельного программирования.  Программы этой модели, подобно программам модели процесс/канал, создают множество процессов, с каждым из которых ассоциированы локальные данные. Каждый процесс идентифицируется уникальным именем. Процессы взаимодействуют, посылая и получая сообщения. В этом отношение модель обмен сообщениями является разновидностью модели процесс/канал и отличается только механизмом, используемым при передаче данных. 

Возможно:

  • динамическое создание задач,

  • выполнение нескольких задач на одном процессоре,

  • выполнение различных программ различными задачами.

НО в большинстве систем передачи сообщений:

  • создается фиксированное число идентичных задач при запуске программы;

  • не поддерживается динамическое управление задачами во время выполнения программы;

  • используется модель программирования – SIMD: каждая задача выполняет одну и ту же программу, но функционирует на различных данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]