| |
Посылка сообщения в PVM совершается тремя шагами. Первый: буфер передачи
должен быть инициализирован вызовом
pvm_initsend() или pvm_mkbuf().
Второй: сообщение должно быть ``упаковано'' в этот буфер с помощью
произвольного количества вызовов подпрограмм pvm_pk*()
в любой комбинации. (На Фортране упаковка сообщений делается подпрограммой
pvmfpack().) Третий: подготовленное сообщение посылается
соответствующему процессу вызовом подпрограммы pvm_send()
или широковещательной передачей с помощью подпрограммы pvm_mcast().
Сообщение принимается вызовом подпрограммы либо блокирующего, либо неблокирующего приема, а затем каждый из упакованных фрагментов распаковывается в буфер приема. Подпрограммы приема могут быть настроены на восприятие ``любого'' сообщения, любого сообщения от указанного источника, любого сообщения с указанным тегом, либо только сообщения с данным тегом от данного источника. Существует и ``пробная'' функция, которая проверяет, поступило ли сообщение, но на самом деле не принимает его.
Если требуется, то с помощью PVM версии 3 прием можно обработать в дополнительном контексте. Подпрограмма pvm_recvf() позволяет пользователям определять свои собственные контексты приема, в которых будут работать все последующие подпрограммы приема PVM.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |