在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