24、并行编程与设计模式深度解析

并行编程与设计模式深度解析

1. 并行编程基础与 OpenMP 应用

在相同系统和编译器环境下(包含 OpenMP 库)编译并运行程序,会得到如下结果:

Sum is 785398164.1475 and Area: pi/4 is 0.785398
Approximation to pi is 3.141593
real 2.24
user 17.06
sys 0.00

在计算程序中, sum 变量在 for 循环里累加。当采用工作共享并将循环工作分配到多个线程时,这是如何实现的呢?这种在循环中每次累积部分值的方式被称为归约(reduction)。此时可使用 OpenMP 编译器指令 reduction(<operator> : <list of variables>) ,该指令会产生以下效果:
1. 为每个变量创建并初始化一个本地副本。
2. 线程中的更新仅作用于本地副本。
3. 循环执行结束后,本地副本会归约为单个值,并使用指定运算符合并到原始全局变量中。

可用于归约的运算符有: + - * max min & | ^ &&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值