功能分解(Functional Decomposition)也叫计算划分,它首先关注被执行的计算的分解,而不是计算所需的数据,然后,如果所作的计算划分是成动的,再继续研究计算所需的数据。如果这些数据是不相交或相交很少的,就意味着划分是成功的;如果这些数据有相当的重叠,就会产生大量的通信,此时就暗示应考虑数据分解。

  尽管大多数并行算法采用域分解,但功能分解有时能揭示问题的内在结构,展示出优化的机会。单对数据进行研究往往很难做到这一点。

  功能分解的一个例子是搜索树。搜索树没有明显的可分解的数据结构,但易于进行细粒度的功能分解:开始时根生成一个任务,对其评价后,如果它不是一个解,就生成若干叶结点,这些叶结点可以分到各个处理器上并行地继续搜索。