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 |