在C编程中...无PThreads的同步
是否有任何库在那里并行化和同步代码而不使用POSIX线程?
我听说过OpenMP。但是,在查看hello world实现的符号表后,我发现OpenMP只是一个建立在PThreads上的库。
编辑
参见下@ tmyklebu的回答我的评论
在C编程中...无PThreads的同步
是否有任何库在那里并行化和同步代码而不使用POSIX线程?
我听说过OpenMP。但是,在查看hello world实现的符号表后,我发现OpenMP只是一个建立在PThreads上的库。
编辑
参见下@ tmyklebu的回答我的评论
我想我的问题是“为什么你要避免并行线程?” pthreads为您提供了一个内核线程和同步原语的理智和可移植的界面。这样说,直接使用你的平台的本地原子内建函数(cmpxchg或LL/SC或你有什么)常常是有用的,因为内核有时没有理由参与你的同步。
在Linux上,请查看futex
系统调用。
英特尔发布此“线程构建块”的东西。 AMD有类似的东西。我几乎没有用过,所以我不会评论他们。
MPI也是一件事情。
是的,MPI看起来很有前途,但我正在寻找一种不是PThreads的线程实现,并行线程。见PThreads需要一些时间来获取锁(更多时旋转)。这些数字是好还是坏?没有人会知道,除非有竞争对手做得更好或更糟;因此搜索,因此这个问题。 – iGbanam
@Yasky如果你正在寻找关于锁的基准测试,你可能想检查[this](http://locklessinc.com/articles/locks/)。 – 2012-11-27 22:39:39
你使用什么平台?编译器?编译器版本?如果GCC你可能喜欢[threads.h](http://en.wikipedia.org/wiki/C11_(C_standard_revision)),请参见[这个问题](http://stackoverflow.com/questions/8859394/c11-thread -h-in-gcc) – 2012-11-27 22:37:53
我在一台Linux机器上,英特尔处理器--4核心,gcc-4.7 – iGbanam