next up previous contents
Next: Буферы сообщений Up: PVM - параллельная виртуальная Previous: Установка и получение опций   Contents

Обмен сообщениями

Посылка сообщения в PVM совершается тремя шагами. Первый: буфер передачи должен быть инициализирован вызовом
pvm_initsend() или pvm_mkbuf(). Второй: сообщение должно быть ``упаковано'' в этот буфер с помощью произвольного количества вызовов подпрограмм pvm_pk*() в любой комбинации. (На Фортране упаковка сообщений делается подпрограммой pvmfpack().) Третий: подготовленное сообщение посылается соответствующему процессу вызовом подпрограммы pvm_send() или широковещательной передачей с помощью подпрограммы pvm_mcast().

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

Если требуется, то с помощью PVM версии 3 прием можно обработать в дополнительном контексте. Подпрограмма pvm_recvf() позволяет пользователям определять свои собственные контексты приема, в которых будут работать все последующие подпрограммы приема PVM.



Subsections

2004-06-22