不断更新,最后更新时间:2022.10.15
OpenMP中的一些函数
- MPI_Allreduce函数。规约函数:组合(规约,将所有的发送信息进行同一个操作)所有进程的值并将结果分发回所有进程(
原文说的所有进程,但是后面又说只在根进程上有效
)。
归约函数的思想:把某个操作,连续应用到序列的元素上,累计之前的结果,把一系列值归约成一个值。归约函数有:sum 、reduce 、all 、any 等等
int MPIAPI MPI_Allreduce(
_In_opt_ const void *sendbuf, // 每个进程准备规约的数据
_Out_opt_ void *recvbuf, // 指向缓冲区的指针,用于接收规约操作的结果。此参数仅在根进程上有意义。
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op, // 规约操作
_In_ MPI_Comm comm
);
MPI_Op包含一下操作 :
MPI_MAX
- 返回最大元素。MPI_MIN
- 返回最小元素。MPI_SUM
- 对元素求和。MPI_PROD
- 将所有元素相乘。MPI_LAND
- 对元素执行逻辑与运算。MPI_LOR
- 对元素执行逻辑或运算。MPI_BAND
- 对元素的各个位按位与执行。MPI_BOR
- 对元素的位执行按位或运算。MPI_MAXLOC
-返回最大值和所在的进程的秩。MPI_MINLOC
- 返回最小值和所在的进程的秩。