30、并行程序性能分析与优化策略

并行程序性能分析与优化策略

1. 并行执行时间分析

在并行程序中,对于具有 $p$ 个处理单元和 $N$ 次迭代的循环,其并行执行时间 $T_p(k)$ 可通过以下近似公式估算:
$T_p(k) = \frac{N}{k \cdot p}(k \cdot B + \sigma) = \frac{N \cdot B}{p} + \frac{N \cdot \sigma}{k \cdot p}$
其中,$N/k$ 个数据块由 $p$ 个处理器并行执行,每个数据块的执行时间为 $k \cdot B + \sigma$,$B$ 表示一次迭代的执行时间,$\sigma$ 表示一个数据块的调度开销。

对 $T_p(k)$ 求一阶导数:
$T’_p(k) = -\frac{N\sigma}{k^2 \cdot p}$
该导数无零点,因此在这种简单情况下,无法计算出 $k$ 的最优值。

对近似公式进行微小修改:
$\tilde{T}_p(k) = (\frac{N}{k \cdot p} + 1)(k \cdot B + \sigma) = \frac{N \cdot B}{p} + k \cdot B + \frac{N \cdot \sigma}{k \cdot p} + \sigma$
其一阶导数为:
$T’_p(k) = B - \frac{N \cdot \sigma}{k^2 \cdot p}$
当 $k = \sqrt{\frac{N \cdot \sigma}{p \cdot B}}$ 时,导数为零,此为全局最小值。但由于 $B$ 的值未知,即使得到该 $k$ 值,也可能无法找到实际循环执行的最小值,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值