0
点赞
收藏
分享

微信扫一扫

二叉树求和与蝶式求和的并行算法实现

小暴龙要抱抱 2022-01-20 阅读 197
算法

二叉树求和与蝶式求和的并行算法实现

二叉树求和

在这里插入图片描述

PCAM分析

  • 划分:将一组数据(arr)划分,数组中单个数据为一组。

  • 通信:各组需要传递自己的数据,在求和过程中,上图中arr[1]与arr[0]求和时,需要将arr[1]传递给arr[0],更新arr[0]=arr[0]+arr[1];arr[2]与arr[3]求和时,需要将arr[3]传递给arr[2],更新arr[2]=arr[2]+arr[3],以此类推。和保存在arr[0]中,然后要将arr[0]值按相反的路径,传递给其他各组。

  • 组合:各组不需要组合。

  • 映射:将各组映射到不同的处理器或进程,利用MPI库实现各组的通信。

源码

见文章末尾

运行

编译之后,打开命令行,输入

下图是x=8和x=4的运行情况

在这里插入图片描述

蝶式求和

PCAM分析

  • 划分:将一组数据(arr)划分,数组中单个数据为一组。

  • 通信:各组需要传递自己的数据,在求和过程中,上图中arr[1]与arr[0]求和时, 相互传递本组的值,同时更新arr[0]=arr[0]+arr[1] arr[1]=arr[0]+arr[1];第二轮求和时,arr[0]组与arr[2]组相互交换数据求和;第三轮以此类推。最终,各组都保持了全和。

  • 组合:各组不需要组合。

  • 映射:将各组映射到不同的处理器或进程,利用MPI库实现各组的通信。

源码

源码见文章末尾

运行

运行效果如下:
在这里插入图片描述
源码资源:
https://download.csdn.net/download/GooTal/76969609

举报

相关推荐

0 条评论