- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран hpf. Общая характеристика.
- •Задача предотвращения тупиков. Алгоритм банкира.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Задача предотвращения тупиков. Алгоритм упорядоченных классов.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Конструктор массивов в языке Фортран 90.
- •Непроцедурный язык Норма. Понятие сетки. Понятие области.
- •Оператор полагать в языке норма.
- •Операторы языка Фортран 90
- •Операции над массивами в языке Фортран 90.
- •Организация ввода и вывода в языке норма.
- •Понятия критического ресурса и критической секции.
- •Проблема «Производитель-потребитель». Общие семафоры.
- •Проблема взаимных блокировок (тупиков).
- •Программирование пространственно-временных структур на языке оккам.
- •Секции массивов в языке фортран 90.
- •19. Система программирования pvm (Parallel Virtual Machine).
- •20. Система параллельного программирования dvm(Distributed Virtual Machine).
- •21. Система параллельного программирования mpi.
- •22. Структура программы на языке норма. Оператор итерация.
- •23. Условные области в языке норма.
- •24. Язык фортран 90. Общая характеристика.
- •25,26. Язык оккам. Общая характеристика. Операторы языка оккам.
19. Система программирования pvm (Parallel Virtual Machine).
При параллельном программировании разработчик, кроме составления алгоритма решения задачи, должен дополнительно: 1)Определить возможность параллельного выполнения отельных частей программы; 2)Распределить выделенные части алгоритма по отдельным параллельным ветвям с учетом архитектуры ВС; 3)Обеспечить синхронизацию параллельных ветвей алгоритма; 4)Распределить исходные данные и промежуточные результаты между параллельными ветвями алгоритма; 5)Защитить параллельные части программы от взаимных блокировок; 6)На каждом этапе проектирования алгоритма оценивать его эффективность.
Каждая из перечисленных задач очень трудоемка в отдельности, а необходимость их совместного решения является главным тормозом в развитии технологии параллельного программирования. Потому основные усилия разработчиков направлены на создание систем параллельного программирования, максимально автоматизирующие решение вышеперечисленных задач.
Наиболее распространенные системы пар. программирования: PVM, MPI, DVM.
Исторически первая система - PVM. Она возникла для параллельного решения задач на ограниченных ресурсах. Эта система была создана для объединения нескольких связанных сетью рабочих стаций в единую параллельную вычислительную машину, и представляет собой надстройку над операционной системой Unix. В настоящее время PVM используется на различных аппаратных платформах, включая системы с массовым параллелизмом. В общем случае число задач, решаемое параллельно, может превосходить число процессоров.
В состав PVM можно включать разнородные вычислительные машины, не совместимые по форматам команд и данных → пользователь может считать, что он общается с одной вычислительной машиной, в которой возможно параллельное выполнение множества задач. Задача пользователя рассматривается как множество подзадач,динамически создающихся на указанных процессорах и взаимодействующих между собой посредствам пересылки сообщений и сигналов. При этом, как правило, значительно упрощаются проблемы быстрого информационного обмена между различными заданиями и проблемы согласования формата данных.
PVM состоит из 2 частей: Демон (PVMD) и Библиотеки программирования, организующие интерфейс ЭВМ (содержат функционально-полный набор примитивов, необходимый для взаимодействия задач внутри приложения). Демон помещается на все компы системы, входящие в состав виртуальной машины. Когда пользователь запускает PVM, он должен создать свою VM, после чего приложение может быть запущено с любого из терминалов на любом из хостов. Каждый пользователь может запустить несколько приложений. Реальный выигрыш в системы PVM достигается с учетом специфики решаемой задачи и при наиболее полном учете характеристик аппаратных средств вычислительной системы. Обычно в рамках PVM запускается только 1 задача (Master), которая производит подготовительные действия, после чего запускает slaves. Каждой задаче может соответствовать один или разные исполняемые файлы. В PVM только точечное взаимодействие (точка-точка).
Достоинства → простота использования, наличие наследованного от Unix аппарата процессов и сигналов и возможность динамического добавления вновь созданных процессов. Недостатки → низкая производительность и некоторая функциональная ограниченность, например, в системе реализован только один режим передачи сообщений с буферизацией.