MPI_Bcast 函数

将数据从组的一个成员广播到该组的所有成员。

语法

int MPIAPI MPI_Bcast(
  _Inout_  void        *buffer,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _In_    int          root,
  _In_    MPI_Comm     comm
);

参数

  • buffer [in, out]
    指向数据缓冲区的指针。 在 参数指定的进程中,缓冲区包含要广播的数据。 在通信器中由 comm 参数指定的所有其他进程上,缓冲区接收根进程广播的数据。

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

  • datatype [in]
    发送缓冲区中元素的 MPI 数据类型。

  • root [in]
    正在发送数据的进程的排名。

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

返回值

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

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

Fortran

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

注解

由每个进程上的 count 和数据类型参数指定的 类型 签名必须与根中的类型签名相等。 此要求意味着发送的数据量必须等于每个进程和根之间的成对接收量。 MPI_Bcast 和所有其他数据移动集体例程都存在此限制。 仍允许发送方和接收方之间的非重复类型映射。

如果 comm 参数引用内部通信器, 则 MPI_Bcast 函数会将消息从指定进程广播到包含自身的组的所有进程。 它由使用相同参数的组的所有成员调用。 返回时,根缓冲区的内容将复制到所有其他进程。

如果 comm 参数引用对讲器,则调用涉及交互器中的所有进程,但包含一个组 A,用于定义根进程。 其他组 B 组中的所有进程在参数中设置相同的值,即组 A 中根进程的排名。根进程在参数中MPI_ROOT设置值。 组 A 中的所有其他进程在参数中MPI_PROC_NULL设置值。 数据从根进程广播到组 B 中的所有进程。组 B 中进程的 缓冲区 参数必须与根进程的 缓冲区 参数一致。

要求

产品

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_Datatype