📜  并行算法-分析

📅  最后修改于: 2020-12-13 15:12:48             🧑  作者: Mango


对算法的分析有助于我们确定算法是否有用。通常,基于执行时间(时间复杂度)和所需的空间量(空间复杂度)来分析算法。

由于我们拥有价格合理的复杂存储设备,因此存储空间不再是问题。因此,空间复杂性没有那么重要。

并行算法旨在提高计算机的计算速度。为了分析并行算法,我们通常考虑以下参数-

  • 时间复杂度(执行时间),
  • 使用的处理器总数,以及
  • 总计花费。

时间复杂度

开发并行算法的主要原因是减少了算法的计算时间。因此,评估算法的执行时间对于分析其效率极为重要。

执行时间是根据算法解决问题所花费的时间来衡量的。从算法开始执行到停止为止,计算总执行时间。如果所有处理器都不同时开始或结束执行,则算法的总执行时间是第一个处理器开始执行的时刻到最后一个处理器停止执行的时刻。

算法的时间复杂度可分为三类-

  • 最坏情况下的复杂性-当算法对于给定输入所需的时间最大时

  • 平均情况复杂度-当算法对于给定输入所需的时间为平均时间时

  • 最佳情况下的复杂度-给定输入的算法所需的时间最少时

渐近分析

算法的复杂性或效率是算法执行以获得所需输出的步骤数。进行渐近分析以计算算法在理论分析中的复杂度。在渐近分析中,使用很大的输入量来计算算法的复杂度函数。

注意渐近是线趋于与曲线相交但不相交的情况。此处,直线和曲线彼此渐近。

渐进表示法是描述使用上限和下限速度的算法最快和最慢执行时间的最简单方法。为此,我们使用以下符号-

  • 大O符号
  • 欧米茄符号
  • θ符号

大O符号

在数学中,Big O表示法用于表示函数的渐近特征。它以一种简单而准确的方法表示了大型输入的函数行为。这是一种表示算法执行时间上限的方法。它代表算法完成其执行所需的最长时间。函数-

f(n)= O(g(n))

当且仅当存在正的常数cN 0,使得f(n)的≤C * G(n)的所有n,其中n≥N 0。

欧米茄符号

Omega表示法是一种表示算法执行时间下限的方法。函数-

f(n)=Ω(g(n))

当且仅当存在正的常数cN 0,使得F(N)≥C * G(n)的所有n,其中n≥N 0。

θ符号

Theta表示法是一种表示算法执行时间的下限和上限的方法。函数-

f(n)=θ(g(n))

当且仅当存在的C 1正的常数,C 2,n 0,使得C1 * G(N)≤F(N)≤C2 * G(N)对所有的n,其中n≥N 0。

算法加速

并行算法的性能是通过计算其加速比来确定的。加速定义为特定问题的最快已知顺序算法的最坏情况执行时间与并行算法的最坏情况执行时间之比。

加速=
特定问题最快已知序列的最坏情况执行时间/并行算法的最坏情况执行时间

使用的处理器数量

使用的处理器数量是分析并行算法效率的重要因素。计算购买,维护和运行计算机的成本。一种算法用于解决问题的处理器数量越多,获得的结果就越昂贵。

总计花费

并行算法的总成本是时间复杂度与该特定算法中使用的处理器数量的乘积。

总成本=时间复杂度×使用的处理器数量

因此,并行算法的效率为-

效率=
顺序算法的最坏情况执行时间/并行算法的最坏情况执行时间