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