C的任务库?

时间:2011-10-21 11:32:01

标签: c linux task-parallel-library

是否有C的任务库?我在谈论并行任务库,因为它存在于C#或Java中。换句话说,对于Linux,我需要pthread的抽象层。感谢。

6 个答案:

答案 0 :(得分:3)

看看OpenMP。 特别是,您可能对OpenMP 3.0的Task功能感兴趣。

但是,我建议您尝试查看是否可以使用其他“基本”构造解决问题,例如并行构造,因为它们更易于使用。

答案 1 :(得分:1)

除了Win32之外,最广泛使用的并行编程原语可能是pthreads提供的原语。

它们非常低级,但包含编写高效阻塞队列所需的一切,因此创建了一个执行异步任务队列的工作线程池。

还有一个Win32 implementation,因此您可以在Windows和POSIX系统上使用相同的代码库。

答案 2 :(得分:1)

TPL (任务,工作窃取计划程序,......)中的许多概念都受到麻省理工学院一个名为Cilk的非常成功的项目的启发。他们的高级框架( Cilk Plus )被英特尔收购并集成到英特尔Parallel Building Block。您仍然可以使用 Cilk 作为open source project而不使用某些高级功能。好消息是Intel is releasing Cilk Plus as open source in GCC

你应该尝试 Cilk ,因为它为C添加了另一层抽象,这使得表达并行算法变得容易,但它足够接近C以确保良好的性能。

答案 3 :(得分:0)

ANSI C不支持线程,但有一些选项: Threaded C programs in minGW 问候。

答案 4 :(得分:0)

我一直想看看libdispatch。是的,它是为OS X和块而构建的,但它们也有功能接口。没有时间去看它,但不确定它是否满足你的所有需求。

答案 5 :(得分:0)

有一个名为Wool的学术项目,它在C中实现了工作窃取调度程序(在C预处理器AFAIK的帮助下)。可能值得一看,虽然它似乎没有积极发展。