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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈