MPI_Ssend 函数

执行同步模式发送操作,并在可以安全重用发送缓冲区时返回 。

语法

int MPIAPI MPI_Ssend(
  _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_SSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR

注解

此函数是非本地函数。 发送操作的成功完成取决于匹配的接收函数的出现情况。

无论是否发布匹配的接收,都可以调用此函数。 但是,仅当发送了匹配的接收,并且接收操作已开始接收消息时,发送函数才会成功完成。 因此,同步发送的完成不仅指示可以重复使用发送缓冲区,还指示接收进程已开始执行匹配的接收。

如果发送和接收操作都是阻塞操作,则同步模式提供同步通信语义;在发送和接收过程完成之前,通信不会在任一端完成。

要求

产品

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

另请参阅

MPI 点到点函数

MPI_Send

MPI_Bsend

MPI_Rsend

MPI_Recv