Н., Пескова Е. Е., Шаманаев П. А. Основы параллельного программирования с использованием технологий mpi и openmp учебное пособие саранск издательство свмо 2013 2



Pdf көрінісі
бет13/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   ...   9   10   11   12   13   14   15   16   ...   53
ParProg MPI OpenMP

status.MPI_SOURCE — ранг процесса-отправителя принятого 
сообщения; 
status.MPI_TAG — тег принятого сообщения. 
Приведенные значения MPI_ANY_SOURCE и MPI_ANY_TAG 
иногда называют джокерами. 
Значение переменной status позволяет определить количество 
элементов данных в принятом сообщении при помощи функции: 
int MPI_Get_count(MPI_Status *status, MPI_Datatype type,int 
*count), где 
• status — статус операции MPI_Recv
• type — тип принятых данных; 
• count — количество элементов данных в сообщении. 
Вызов функции MPI_Recv не обязан быть согласованным со 
временем вызова соответствующей функции передачи сообщения 
MPI_Send – прием сообщения может быть инициирован до момента, в 
момент или после момента начала отправки сообщения. 
По завершении функции MPI_Recv в заданном буфере памяти будет 
располагаться принятое сообщение. Так как функция MPI_Recv является 
блокирующей 
для 
процесса-получателя, 
его 
выполнение 
приостанавливается до завершения работы функции. Таким образом, если 
по каким-то причинам ожидаемое для приема сообщение будет 
отсутствовать, выполнение параллельной программы будет блокировано.
2.4.2 Обмен сообщениями без блокировки 
 
В отличие от функций с блокировкой, возврат из функций данной 
группы происходит сразу без какой-либо блокировки процессов. На фоне 
дальнейшего выполнения программы одновременно происходит и 
обработка асинхронно запущенной операции. Данная возможность 
полезна для создания эффективных программ. В самом деле, программист 
знает, что в некоторый момент ему потребуется массив, который 
вычисляет другой процесс. Он заранее выставляет в программе 


18 
асинхронный запрос на получение данного массива, а до того момента, 
когда массив реально потребуется, он может выполнять любую другую 
полезную работу. Опять же, во многих случаях совершенно не 
обязательно дожидаться окончания посылки сообщения для выполнения 
последующих вычислений. 


Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   53




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет