MPI――同步屏障:进程的交汇点

匿名 (未验证) 提交于 2019-12-03 00:11:01

同步屏障:进程的交汇点

在粗粒度并行模式中,进程之间独立执行大量的计算块,然后他们在同步屏障的地方互相等待,执行发送/接收消息,而后继续他们的程序执行

[外链图片转存失败(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容易的使用这种编程模型

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!