Разница между функциями MPISend и MPIRecv заключается в их задачах:
- MPI_Send отправляет сообщение (данные) от одного процесса к другому. farabi.university Функция завершается, когда все данные были отправлены и могут быть перекрыты без изменения отправленного сообщения. onreader.mdl.ru
- MPI_Recv принимает сообщение, отправленное другим процессом. farabi.university Функция завершается, когда необходимые данные были получены и могут использоваться. onreader.mdl.ru
Эти функции работают в паре, и для успешной передачи данных процесс-отправитель должен вызвать MPISend, а процесс-получатель — MPIRecv. farabi.university
Кроме того, некоторые параметры функций отличаются:
- Ранг процесса. farabi.university В MPISend указывается ранг процесса-получателя (параметр dest), а в MPIRecv — ранг процесса-отправителя (параметр source). farabi.university
- Размер буфера. www.opennet.ru Для MPISend указывает, сколько ячеек требуется передать. www.opennet.ru В MPIRecv означает максимальную ёмкость приёмного буфера. www.opennet.ru
- Режимы работы. it.kgsu.ru В отличие от функции MPIRecv, для MPISend существует несколько режимов работы, например, передача по готовности. it.kgsu.ru Для MPI_Recv, в свою очередь, не существует различных режимов работы. it.kgsu.ru