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}$
其中,$\frac{N}{k}$ 个块由 $p$ 个处理器并行执行,每个块的执行时间为 $k \cdot B + \sigma$,$B$ 表示一次迭代的执行时间,$\sigma$ 表示一个块的调度开销。对 $T_p(k)$ 求一阶导数:
$T_p^{\prime}(k) = -\frac{N\sigma}{k^2 \cdot p}$
该导数无零点,所以在这种简单情况下,无法计算出 $k$ 的最优值。对近似公式进行小修改:
$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^{\prime}(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、付费专栏及课程。

余额充值