ВУЗ:
Составители:
Рубрика:
- 9 -
к возникновению тупиковой ситуации (см. ниже), поэтому при этом требует-
ся дополнительная осторожность; при использовании асинхронных операций
тупиковых ситуаций не бывает, однако эти операции требуют более аккурат-
ного использования массивов данных.
При использовании процедур ‘точка-точка’ программист имеет возмож-
ность выбрать способ взаимодействия процессов и способ взаимодействия
коммуникационного модуля MPI с вызывающим
процессом.
По способу взаимодействия процессов - в случае неодновременного вызо-
ва двумя процессами парных функций приема и передачи могут быть произ-
ведены следующим образом:
•
Буферизация данных осуществляется на передающей стороне (при этом
функция передачи захватывает временный буфер, копирует в него сооб-
щение и возвращает управление вызвавшему процессу; содержимое бу-
фера передается принимающему процессу в фоновом режиме).
•
Режим ожидания на стороне принимающего процесса (при этом возмож-
но завершение с выдачей кода ошибки на передающей стороне).
•
Режим ожидания на передающей стороне (завершение с кодом ошибки
на стороне приема).
•
Автоматический выбор одного из трех вышеприведенных вариантов
(именно так действуют простейшие блокирующие функции
MPI_Recv
и
MPI_Send
).
По способу взаимодействия MPI-модуля с вызывающим процессом:
•
Блокирующий режим - управление вызывающему процессу возвращает-
ся только после того, как данные приняты или переданы (или скопирова-
ны во временный буфер).
•
Неблокирующий режим - управление вызывающему процессу возвраща-
ется немедленно (т.е. процесс блокируется до завершения операции) и
фактическая приемопередача происходит в фоновом режиме. Этот режим
работает с ‘квитированием’ (функции неблокирующего приема имеют
дополнительный параметр типа ‘квитанция’, причем процесс не имеет
права производить какие-либо действия с буфером сообщения, пока кви-
танция не будет ‘
погашена’).
•
Персистентный режим (эффективен, например, при приемопередаче
внутри цикла, когда создание/закрытие канала вынесены за его границы);
в этом случае в отдельные функции выделены:
•
cоздание (постоянного) ‘канала’ для приема/передачи сообщений,
•
инициация процесса приема/передачи через канал,
•
закрытие канала.
Функций коллективных коммуникаций (при которых получателей и/или
отправителей несколько) имеется несколько типов; в правом столбце ниже-
расположенной таблицы схематично показаны процессоры (вычислительные
-9-
к возникновению тупиковой ситуации (см. ниже), поэтому при этом требует-
ся дополнительная осторожность; при использовании асинхронных операций
тупиковых ситуаций не бывает, однако эти операции требуют более аккурат-
ного использования массивов данных.
При использовании процедур ‘точка-точка’ программист имеет возмож-
ность выбрать способ взаимодействия процессов и способ взаимодействия
коммуникационного модуля MPI с вызывающим процессом.
По способу взаимодействия процессов - в случае неодновременного вызо-
ва двумя процессами парных функций приема и передачи могут быть произ-
ведены следующим образом:
• Буферизация данных осуществляется на передающей стороне (при этом
функция передачи захватывает временный буфер, копирует в него сооб-
щение и возвращает управление вызвавшему процессу; содержимое бу-
фера передается принимающему процессу в фоновом режиме).
• Режим ожидания на стороне принимающего процесса (при этом возмож-
но завершение с выдачей кода ошибки на передающей стороне).
• Режим ожидания на передающей стороне (завершение с кодом ошибки
на стороне приема).
• Автоматический выбор одного из трех вышеприведенных вариантов
(именно так действуют простейшие блокирующие функции MPI_Recv и
MPI_Send).
По способу взаимодействия MPI-модуля с вызывающим процессом:
• Блокирующий режим - управление вызывающему процессу возвращает-
ся только после того, как данные приняты или переданы (или скопирова-
ны во временный буфер).
• Неблокирующий режим - управление вызывающему процессу возвраща-
ется немедленно (т.е. процесс блокируется до завершения операции) и
фактическая приемопередача происходит в фоновом режиме. Этот режим
работает с ‘квитированием’ (функции неблокирующего приема имеют
дополнительный параметр типа ‘квитанция’, причем процесс не имеет
права производить какие-либо действия с буфером сообщения, пока кви-
танция не будет ‘погашена’).
• Персистентный режим (эффективен, например, при приемопередаче
внутри цикла, когда создание/закрытие канала вынесены за его границы);
в этом случае в отдельные функции выделены:
• cоздание (постоянного) ‘канала’ для приема/передачи сообщений,
• инициация процесса приема/передачи через канал,
• закрытие канала.
Функций коллективных коммуникаций (при которых получателей и/или
отправителей несколько) имеется несколько типов; в правом столбце ниже-
расположенной таблицы схематично показаны процессоры (вычислительные
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »
