同步屏障:进程的交汇点
在粗粒度并行模式中,进程之间独立执行大量的计算块,然后他们在同步屏障的地方互相等待,执行发送/接收消息,而后继续他们的程序执行
[外链图片转存失败(img-UWPNM6FE-1569241273113)(assets/1569238560457.png)]
测试运行时间
MPI中使用MPI_Wtime测量时间。
double start, end; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Barrier(MPI_COMM_WORLD); start = MPI_Wtime(); LocalComputation(); MPI_Barrier(MPI_COMM_WORLD); end = MPI_Wtime(); MPI_Finalize(); if(rank == 0) { cout << end-start << endl; }
主要使用MPI_Barrier
整体同步并行计算模型
整体同步并行计算模型(Bulk Synchoronous Parallel, BSP)是高级并行编程模型之一,这个抽象是由Leslie.G Valiant 构思的,并利用组成超级步骤的三个基本步骤促进并行算法的设计
- 并发计算步骤:进程进行局部异步计算,并行这些局部计算可以与通信重叠
- 通信步骤:进程之间相互交换数据
- 同步屏障步骤:当进程到达同步屏障时,等待所有其他进程到达这个屏障,然后在进行另一组超级步骤
基于BSP模型的一个并行算法的一些列超级步骤,有一个叫做BSPonMPI的软件库,允许利用MPI容易的使用这种编程模型
来源:51CTO
作者:绝尘花遗落
链接:https://blog.csdn.net/huayunhualuo/article/details/101223414