[问题] 多执行绪library问题

楼主: 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
想问大家是怎么挑要用哪一种来实作多执行绪?
作者: changhua5566   2018-01-16 21:40:00
我想你也没被猪嘘过
作者: EricTCartman (阿ㄆㄧㄚˇ)   2019-09-05 19:03:00
当然是用TBB上啊
楼主: ofd168 (大色狼来袭)   2019-09-05 19:53:00
电脑和服务器都是用AMD cpu,这样也可以上吗
作者: Schottky (顺风相送)   2019-09-05 21:44:00
还有 pthread 啊 XDDD
作者: Bencrie   2019-09-05 22:43:00
OpenCL 可以跑纯 CPU 啊
楼主: ofd168 (大色狼来袭)   2019-09-05 22:59:00
想问这么多种,大家是怎么做选择呢
作者: LiloHuang (十年一刻)   2019-09-05 23:18:00
TBB
作者: Schottky (顺风相送)   2019-09-06 01:42:00
小学生才做选择,我全都要每种都写一遍再比较看看,反正语法上都没有很难麻烦的是算法要怎么改成可以平行处理吧,平行化之后反而比原本更慢的例子并不少见要简单地立刻导入旧 code 我推 OpenMP
楼主: ofd168 (大色狼来袭)   2019-09-06 23:04:00
好的,谢谢大大
作者: a1u1usul3 (Q-Max)   2019-09-07 01:58:00
学习历程可以从openmp→ pthread→opencl/cuda如果第一步改用openmp就卡关可能是算法不适合以for loop切分,可能就要考虑用更有弹性的套件去写如pthread和std thread
作者: dh4mve (dh4)   2019-09-07 19:57:00
cpp-taskflow

Links booklink

Contact Us: admin [ a t ] ucptt.com