Магистратура Донецкого Национального Технического Университета

Факультет вычислительной техники и информатики

Кафедра прикладной математики и информатики

Шаблоны параллельного программирования

Обзор и характеристики

Применимость

Ссылки

Программное обеспечение автоматизированных систем

Индивидуальное задание

Шаблоны параллельного программирования

Применимость

English version

Параллельная модель программы

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

Parallel Program Model

Каждый узел графа может представлять собой либо паттерн одиночка (singleton) - один процесс, либо мульти-процессный паттерн. Узлы графа принимают участие в коммуникациях и синхронизируются путём передачи сообщений (message passing). Каждый узел графа имеет порты ввода/вывода, которые используются для соответствующих приёма/передачи данных. Порт вывода одного узла графа соединён с портом ввода другого узла. Когда узел посылает сообщение на порт вывода, это сообщение достигает порта ввода узла- адресата. Такая абстракция узлов графа и портов ввода/вывода позволяет модели оставаться независимой от нижележащей модели передачи сообщений (например, с помощью сокетов).

Узел в графе параллельной программы может представлять группу взаимосвязанных процессов, которые абстрагирует паттерн проектирования. Только интерфейсные процессы в мульти-процессных узлах графа могут напрямую обмениваться данными с другими узлами графа. Интерфейсы узлов одинаковы и неотличимы от интерфейса одиночного процесса. Интерфейсный процесс мульти-процессного паттерна (узла графа) скрывает внутренние детали структуры и реализации паттерна и представляет интерфейс одиночного процесса для других узлов графа.

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

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

Литература:
Stephen Siu. Composing parallel applications using design patterns / Resources on Parallel Patterns (PDF)
Источник: Resources on Parallel Patterns / Parallel Skeletons and Framework / Composing parallel applications using design patterns


Главная страница