最近程序遇到一个框架不合理的问题,但我们对性能又有一定的要求。东西也急着发版,重构是来不及了,因为这个项目就 2 个开发。更何况另外一个哥们客户端这块的技能成长稍慢,代码风格和部分代码质量较差的开源代码有得一拼。
目前要在短期内提高性能的唯一做法,把重任务(负载过高的任务)进行并行化。最简单就是按照 vpu 数量开线程,问题一个一塌糊涂的框架下面多线程只会带来更复杂的问题(内存写穿、死锁等等)。
所以我就看到了 openmp ,用上网简单的例子跑了一下看貌似挺不错的( vs 2010 ,打开 openmp 编译)。但模仿到我们分拆的任务中似乎就不起效了(只要我一在临时变量上加一个“短锁”,不是“长锁”,并行化就失败)。
所以想请推荐一下关于 openmp 方便的并行化编程的书,最好是带有一定的原理说明的,非完全应用手册。目标语言是 c++,编译平台 vs 或 gcc
目前要在短期内提高性能的唯一做法,把重任务(负载过高的任务)进行并行化。最简单就是按照 vpu 数量开线程,问题一个一塌糊涂的框架下面多线程只会带来更复杂的问题(内存写穿、死锁等等)。
所以我就看到了 openmp ,用上网简单的例子跑了一下看貌似挺不错的( vs 2010 ,打开 openmp 编译)。但模仿到我们分拆的任务中似乎就不起效了(只要我一在临时变量上加一个“短锁”,不是“长锁”,并行化就失败)。
所以想请推荐一下关于 openmp 方便的并行化编程的书,最好是带有一定的原理说明的,非完全应用手册。目标语言是 c++,编译平台 vs 或 gcc