asc18超算mpi学习总结3

组通信MPI

1. MPI_Bcast() 将根进程的数据分发给所有进程,每个进程数据一致。

2. MPI_Gather() 将每个进程的数据收集到根进程,按照rank顺序存储。

3. MPI_Gatherv 对每个进程收集的数据大小可以不一致

4. MPI_Scatter 散发,将根进程的数据分发给其他进程包括根进程,每个进程得到的数据不一致。

5. MPI_Scatterv 给其他进程的数据大小可以不一致。

6. MPI_Allgather 每个进程都相当于根进程。

7. MPI_Alltoall 例子中相当于做了转置

8. MPI_Barrier 阻塞同步

9. MPI_Reduce 规约操作,将各个进程的数据按照规约到根进程

10. MPI_Allreduce MPI_Reduce_scatter MPI_Scan三者区别:

asc18超算mpi学习总结3_第1张图片

MPI_Reduce:

asc18超算mpi学习总结3_第2张图片

MPI_Allreduce:

asc18超算mpi学习总结3_第3张图片

MPI_Reduce_scatter

asc18超算mpi学习总结3_第4张图片

MPI_Scan:

asc18超算mpi学习总结3_第5张图片

MPI_Scan:每个进程对之前的比他进程号小的所有数据进行归约并存入自己的空间里。

1. Reduce实现了pi值计算

2. Scattergather  实现 矩阵向量乘和矩阵乘

 在实现过程中要开辟几个数组供当前进程使用。


你可能感兴趣的:(asc竞赛)