我正在寻找C / CPP中工作窃取队列的正确实现。我环顾了Google,但没有发现任何有用的信息。
也许有人熟悉良好的开源实现?(我不想执行从原始学术论文中摘录的伪代码)。
没有免费的午餐。
请看一下偷纸的原始作品。这篇论文很难理解。我知道论文包含理论证明,而不是伪代码。但是,没有比TBB 更 简单的版本了。如果有的话,它不会提供最佳性能。窃取工作本身会导致大量开销,因此优化和技巧非常重要。特别是,出队必须是线程安全的。实施高度可扩展和低开销的同步具有挑战性。
我真的很想知道为什么您需要它。我认为 正确实施 意味着像TBB和Cilk。同样,窃取工作很难实现。