作者ofd168 ()
看板C_and_CPP
標題[問題] 多執行緒問題
時間Thu Sep 5 18:32:18 2019
開發平台(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
想問大家是怎麼挑要用哪一種來實作多執行緒?
--
標題 [笑話] 唐三藏的願望
唐三藏:八戒,你跑兩步給為師看看。
八 戒:師父,你為啥突然想看徒兒跑步?
唐三藏:哎啊!慚愧,為師自幼在寺中長大,既沒吃過豬肉,也沒看過豬跑步。
1F:噓 changhua5566:我想你也沒被豬噓過01/16 21:40
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.204.170 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1567679544.A.C74.html
2F:→ EricTCartman: 當然是用TBB上啊 09/05 19:03
3F:→ ofd168: 電腦和伺服器都是用AMD cpu,這樣也可以上嗎 09/05 19:53
4F:推 Schottky: 還有 pthread 啊 XDDD 09/05 21:44
5F:推 Bencrie: OpenCL 可以跑純 CPU 啊 09/05 22:43
6F:→ ofd168: 想問這麼多種,大家是怎麼做選擇呢 09/05 22:59
7F:推 LiloHuang: TBB 09/05 23:18
8F:推 Schottky: 小學生才做選擇,我全都要 09/06 01:42
9F:→ Schottky: 每種都寫一遍再比較看看,反正語法上都沒有很難 09/06 01:46
10F:→ Schottky: 麻煩的是演算法要怎麼改成可以平行處理吧,平行化之後 09/06 01:46
11F:→ Schottky: 反而比原本更慢的例子並不少見 09/06 01:46
12F:→ Schottky: 要簡單地立刻導入舊 code 我推 OpenMP 09/06 01:48
13F:→ ofd168: 好的,謝謝大大 09/06 23:04
14F:推 a1u1usul3: 學習歷程可以從openmp→ pthread→opencl/cuda 09/07 01:58
15F:→ a1u1usul3: 如果第一步改用openmp就卡關可能是演算法不適合以for l 09/07 02:08
16F:→ a1u1usul3: oop切分,可能就要考慮用更有彈性的套件去寫如pthread 09/07 02:08
17F:→ a1u1usul3: 和std thread 09/07 02:08
18F:推 dh4mve: cpp-taskflow 09/07 19:57