最近在看很多并行和多核的资料,觉得各种对于C/C++多线程的扩充方法都不是很理想。
OpenMP算是比较好的,只是对于预编译语句进行了扩充,就是写起来比较需要技巧,而且并行的粒度比较小;Windows中的线程api和linux下的pthread关于线程的原语都比较的繁琐,且并行的粒度较大;boost中的线程虽然用起来比较简单,但是对于性能的提升,似乎没有较好的加速比。
所以,游戏中要对多核进行优化,应该可以结合api类的线程库和OpenMP这样的预处理扩充。不过最实在的方式,应该还是利用GPU的优势,让GPU处理密集型的浮点运算。
现在做h 264的编码优化,可能就在这些方法中进行选择了。