MPI_Ibcast函数

以非阻塞方式将消息从排名为“root”的进程广播到通信器所有其他进程。

语法

int MPIAPI MPI_Ibcast(
  _Inout_  void        *buffer,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _In_    int          root,
  _In_    MPI_Comm     comm,
  _Out_   MPI_Request  *request
);

参数

  • 缓冲区 [in, out]
    指向数据缓冲区的指针。 在由 参数指定的进程中,缓冲区包含要广播的数据。 在由 comm 参数指定的通信器中的所有其他进程上,缓冲区接收根进程广播的数据。 缓冲区数据类型 句柄指示的 MPI_Datatype 连续元素 计数。 消息长度根据元素数而不是字节数来指定。

  • 计数 [in]
    缓冲区中的数据元素数。 如果 计数 参数为零,则消息的数据部分为空。

  • 数据类型 [in]
    表示 缓冲区中每个元素的数据类型的 MPI_Datatype 句柄。

  • [in]
    MPI_Comm通信 发送 缓冲区中的进程的排名。

  • comm [in]
    MPI_Comm 通信器句柄。

  • 请求 [out]
    MPI_Request 表示通信操作的句柄。

返回值

返回成功 MPI_SUCCESS。 否则,返回值为错误代码。

在 Fortran 中,返回值存储在 IERROR 参数中。

Fortran

    MPI_IBCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR)
        <type> BUFFER(*)  
        INTEGER COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR

言论

非阻塞调用启动必须在单独的完成调用中完成的集体广播操作。 启动后,该操作可能会独立于参与进程中的任何计算或其他通信进行。 通过这种方式,非阻塞广播操作可以通过在“后台”运行广播操作来缓解广播操作的可能同步效果。

非阻止广播操作支持所有完成调用(例如,MPI_Wait)。

要求

产品

Microsoft MPI v6

页眉

Mpi.h;Mpif.h

图书馆

Msmpi.lib

DLL

Msmpi.dll

另请参阅

MPI 集体函数

MPI_Bcast

MPI_Datatype

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome

MPI_Comm