MPI_Rsend 函数
执行就绪模式发送操作,并在可以安全重用发送缓冲区时返回 。
语法
int MPIAPI MPI_Rsend(
_In_opt_ void *buf,
int count,
MPI_Datatype datatype,
int dest,
int tag,
MPI_Comm comm
);
参数
buf [in, optional]
指向包含要发送的数据的缓冲区的指针。计数
缓冲区中元素的数目。 如果消息的数据部分为空,请将 count 参数设置为 0。datatype
缓冲区中元素的数据类型。dest
通信器中由 comm 参数指定的目标进程的排名。标签
可用于区分不同类型的消息的消息标记。comm
通信器的句柄。
返回值
返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。
在 Fortran 中,返回值存储在 IERROR 参数中。
Fortran
MPI_RSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
<type> BUF(*)
INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR
注解
此函数是非本地函数。 只要可以重用发送缓冲区且不依赖于匹配的接收操作的状态,此函数就会立即返回。 但是,整个发送操作的成功完成取决于是否存在匹配的接收操作。
仅当匹配的接收操作已过帐时,才能调用此函数。 否则,函数将返回错误,并且其结果未定义。 在某些系统上,此要求消除了其他模式中使用的一些握手,并且可以提高与标准或同步发送操作相比的性能。
MPI_Rsend 函数的语义与 MPI_Send 和 MPI_Ssend 函数相同,但它会通知系统已发布匹配的接收。 该信息可以节省一些开销。 因此,在正确的程序中,现成的发送可以替换为标准发送,对程序的行为没有影响,但性能之外。
要求
产品 |
HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具 |
标头 |
Mpi.h;Mpif.h |
库 |
Msmpi.lib |
DLL |
Msmpi.dll |