Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PP_KR22.doc
Скачиваний:
5
Добавлен:
10.12.2018
Размер:
377.86 Кб
Скачать

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 аппарата процессов и сигналов и возможность динамического добавления вновь созданных процессов. Недостатки → низкая производительность и некоторая функциональная ограниченность, например, в системе реализован только один режим передачи сообщений с буферизацией.

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