分叉会合模型

在并行计算中,分叉会合模型是设置和执行并行程序的一种方式,使得程序在指定一点上“分叉”(fork)而开始并行执行,在随后的一点上“会合”(join)并恢复顺序执行。并行区段可以递归的fork,直到达到特定的任务粒度(granularity)。Fork–join可以被视为是一种并行设计模式,它最早由马尔文·康威公式化于1963年。

概述
通过递归的嵌套fork–join计算,可以获得并行版本的分治范型,表达为如下一般性伪代码:

解决(问题):
if 问题足够小:
直接解决问题 (顺序算法)
else:
for 部份 in 细分(问题)
fork 子任务来解决(部份)
join 在前面的循环中生成的所有子任务
return 合并的结果

例子
简单的并行归并排序是一种fork–join算法:

mergesort(A, lo, hi):
if lo 。Cilk编程语言有对fork和join的语言级别支持,其形式为spawn和sync关键字或Cilk Plus中的cilk_spawn和cilk_sync。

参见

  • 并行编程模型
  • Fork (系统调用)

*
*

引用
外部链接

评论 (0)

  • 还没有评论,来抢沙发吧。