gpt4 book ai didi

c++ - TBB 具有更多派生任务的递归链式 react

转载 作者:行者123 更新时间:2023-11-28 04:39:33 24 4
gpt4 key购买 nike

在TBB(C++)中使用递归链式 react 来确定某些值时应该做什么?

例如,在计算斐波那契数列时,我们在重载的 execute() 方法中创建了两个子任务,它们是:A 计算第 n-2 个数,B 计算第 n-1 个数。在此示例中,生成了 B,并将 A 设置为 spawn_and_wait_for_all(这意味着任务 A 正在等待任务 B)。

但是,例如,如果我们必须确定 Tribonacci 数;那么我们应该有三个子任务。我的问题是,这三个任务中的哪一个应该是 spawn_and_wait_for_all 以实现最大并行度?

当我们有 n 个子任务时也可以应用这个问题。

最佳答案

参见 this primer有关拖延与贪婪任务调度的背景。在贪婪调度程序(例如 Cilk)的情况下,并行度不取决于最后发出哪个子任务。对于停止调度程序,调度停止会降低并行度。最小化停顿数的试探法是对 spawn_and_wait_for_all 使用最大的子任务。这样做往往会最大限度地减少父线程用完工作并不得不从其他地方窃取的机会,如果其他子任务在父线程完成它窃取的任何内容之前完成,这可能会导致停顿。

关于c++ - TBB 具有更多派生任务的递归链式 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50541983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com