Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ALL_otvety_na_ekzamen_PRO.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
473.05 Кб
Скачать

5 Функциональные возможности pvm

PVM позволяет объединить разнородный набор компьютеров, связанных сетью, в общий вычислительный ресурс, который называют «Параллельной виртуальной машиной».

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

В PVM есть восемь самых распространенных PVM-функций: pvm_mytid(), pvm_spawn(), pvm_initsend(), pvm_pkstr(), pvm_send (), pvm_recv (), pvm_upkfloat () и pvm_exit ().

6. Какие технологии программирования поддерживает pvm?

В настоящее время PVM поддерживает языки программирования C, C++ и Фортран. Этот набор языковых интерфейсов взят за основу в связи с тем, что преобладающее большинство целевых приложений написаны на C и Фортран, но наблюдается и тенденция экспериментирования с объектно - ориентированными языками и методологиями.

Привязка языков C и C++ к пользовательскому интерфейсу PVM реализована в виде функций, следующих общепринятым подходам, используемым большинством C-систем, включая UNIX - подобные операционные системы. Уточним, что аргументы функции - это комбинация числовых параметров и указателей , а выходные значения отражают результат работы вызова. В дополнение к этому используются макроопределения для системных констант и такие глобальные переменные, как errno и pvm_errno, которые служат для точного определения результата в числе возможных. Прикладные программы, написанные на C и C++, получают доступ к функциям библиотеки PVM путем прилинковки к ним архивной библиотеки (libpvm3.a)как часть стандартного дистрибутива.

Привязка к языку Фортрана реализована скорее в виде подпрограмм, чем в виде функций. Такой подход применен по той причине, что некоторые компиляторы для поддерживаемых архитектур не смогли бы достоверно реализовать интерфейс между C- и Фортран-функциями. Непосредственным следствием из этого является то, что для каждого вызова библиотеки PVM вводится дополнительный аргумент - для возвращения результирующего статуса в вызвавшую его программу. Также унифицированы библиотечные подпрограммы для размещения введенных данных в буферы сообщения и их восстановления, они имеют дополнительный параметр для отображения типа данных. Кроме этих различий (и разницы в стандартных префиксах при именовании: pvm_ - для C и pvmf_ - для Фортран), возможно взаимодействие ``друг с другом'' между двумя языковыми привязками. Интерфейсы PVM на Фортране реализованы в виде библиотечных надстроек, которые в свою очередь, после разбора и/или определения состава аргументов, вызывают нужные C-подпрограммы. Так, Фортран-приложения требуют прилинковки библиотеки-надстройки (libfpvm3.a) в дополнение к C-библиотеке.

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