14
2.4 Процедуры передачи/приема сообщений между отдельными
процессами
Все процедуры передачи сообщений в MPI можно разделить на две
группы. В одну группу входят процедуры,
которые предназначены для
взаимодействия только двух процессоров программы. Такие операции
называются операциями типа точка-точка. Процедуры другой группы
предполагают, что в операцию должны быть вовлечены все процессы
некоторого коммуникатора. Такие операции называются коллективными.
Рассмотрим первый тип операций. В
таких взаимодействиях
участвуют два процесса, один из которых является отправителем
сообщения, а второй – получателем. Процесс-отправитель вызывает одну
из процедур передачи данных и явно указывает номер получателя в
некотором коммуникаторе, а процесс-получатель
вызывает одну из
процедур приема с указанием того же коммуникатора, причем в
некоторых случаях он может не знать точный номер процесса-
отправителя в данном коммуникаторе.
Все процедуры данной группы делятся на два класса:
процедуры с
блокировкой (с синхронизацией) и процедуры без блокировки
(асинхронные). Процедуры с блокировкой приостанавливают работу
процесса до выполнения некоторого условия, а
возврат из асинхронных
процедур происходит немедленно после инициализации соответствующей
коммуникационной операции. Использование синхронных процедур
может привести к тупиковым ситуациям. Использование асинхронных
операций к тупиковым ситуациям не приводит,
однако требует более
аккуратного использования массивов данных.
Достарыңызбен бөлісу: