作者:
ofd168 (大色狼來襲)
2019-09-05 18:32:18開發平台(Platform): (Ex: Win10, Linux, ...)
win7/win10/linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
vc++ / gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
openCL / openMP / C++11
問題(Question):
跑模擬想要加速
想要的是CPU的多執行緒
目前爬文大致知道有 openCL / openMP / C++11 有多核心的library
C++11的多執行緒好像來自於boost (?)
openCL是比較偏向GPU那方面的多執行緒,因為伺服器沒有顯卡資源可以用
所以目前應該是openMP與C++ 11在選擇
openMP的優點好像是語法使用容易,3.0版本之後也都支援Data / task parallelism
C++11的優點不太確定
但根據爬文的結果
https://software.intel.com/en-us/articles/choosing-the-right-threading-
framework
https://i.imgur.com/S46pILI.png
目前找資料的是覺得
openMP好像沒有書比較深入的講解
C++11有找到 C++並行程式設計 多執行緒實務
目前應該規劃是會以Data parallelism為主
未來可能會切一些做task parallelism
想問大家是怎麼挑要用哪一種來實作多執行緒?