Введение в практику разработки параллельных программ в стандарте MPI. Баканов В.М - 9 стр.

UptoLike

Составители: 

- 9 -
рации. Неаккуратное использование процедур с блокировкой может привести
к возникновению тупиковой ситуации (см. ниже), поэтому при этом требует-
ся дополнительная осторожность; при использовании асинхронных операций
тупиковых ситуаций не бывает, однако эти операции требуют более аккурат-
ного использования массивов данных.
При использовании процедурточка-точка программист имеет возмож-
ность выбрать способ взаимодействия
процессов и способ взаимодействия
коммуникационного модуля MPI с вызывающим процессом.
По способу взаимодействия процессов - в случае неодновременного вызо-
ва двумя процессами парных функций приема и передачи могут быть произ-
ведены следующим образом:
Буферизация данных осуществляется на передающей стороне (при этом
функция передачи захватывает временный буфер, копирует в него сообще-
ние и возвращает управление вызвавшему процессу; содержимое буфера
передается принимающему процессу в фоновом режиме).
Режим ожидания на стороне принимающего процесса (при этом возможно
завершение с выдачей кода ошибки на передающей стороне).
Режим ожидания на передающей стороне (завершение с кодом ошибки на
стороне приема).
Автоматический выбор одного из трех вышеприведенных вариантов
(именно так действуют простейшие блокирующие функции
MPI_Recv и
MPI_Send).
рации. Неаккуратное использование процедур с блокировкой может привести
к возникновению тупиковой ситуации (см. ниже), поэтому при этом требует-
ся дополнительная осторожность; при использовании асинхронных операций
тупиковых ситуаций не бывает, однако эти операции требуют более аккурат-
ного использования массивов данных.
  При использовании процедур ‘точка-точка’ программист имеет возмож-
ность выбрать способ взаимодействия процессов и способ взаимодействия
коммуникационного модуля MPI с вызывающим процессом.
  По способу взаимодействия процессов - в случае неодновременного вызо-
ва двумя процессами парных функций приема и передачи могут быть произ-
ведены следующим образом:

•   Буферизация данных осуществляется на передающей стороне (при этом
    функция передачи захватывает временный буфер, копирует в него сообще-
    ние и возвращает управление вызвавшему процессу; содержимое буфера
    передается принимающему процессу в фоновом режиме).
•   Режим ожидания на стороне принимающего процесса (при этом возможно
    завершение с выдачей кода ошибки на передающей стороне).
•   Режим ожидания на передающей стороне (завершение с кодом ошибки на
    стороне приема).
•   Автоматический выбор одного из трех вышеприведенных вариантов
    (именно так действуют простейшие блокирующие функции MPI_Recv и
    MPI_Send).




                                     -9-