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
);

参数

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

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

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

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

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

  • request [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