opencl和openmp那个更有前途,给点意见

一直对并行开发很有兴趣,但迟迟未能出手,原因很简单,这个领域真的出乎意料的热,了解的越多,越会更加迷茫,本身这
个领域就牵扯着各家的利益。
早先了解到的是openmp和tbb,cuda等,开始纠结于cuda和tbb,最后决定跟着Intel的步伐走,因为实在是厌倦gpu过大的功
耗,觉得intel更有前景,选了tbb,由于之前没有用过标准模板库,标c++用的不好,再加之openmp是业界标准,intel的并行辅助工具也主推openmp,所以决定学习openmp,正当要大张旗鼓的开始时,又了解到了opencl,一个基于异构的api,也是标准,因为刚学完opengl,看到这个opencl和opengl可以很好的结合,外加编程风格相似,又决定学opencl,看了opencl的文档,发现它采用的是C99编程语言,而从微软官方得到证明,vs2010 不支持c99,那怎么开始呀,况且我的笔记本只有gpu支持opencl,cpu不属于8000系列的,不支持,在官网注册账户,要下载opencl预览版驱动,可是还要再加入什么计划,10天后才可以下载那个驱动,突然觉得opencl入门好坎坷,不由得开始质疑它的前途。
intel的独显计划暂停了,但并未完全取消,另有打算,但异构又是当今的一大趋势,到底我该学那个,大家讨论一下吧。

作者: qdwang2010   发布时间: 2011-05-27

可以选择的并行方法太多了,也是烦恼的事情。

先从项目的实际背景出发,主要是数据并行呢,还是任务并行多些; 开发使用的语言呢? C, C++, Fortran; 需要考虑跨平台性么(例如Windows,Linux). 等等。然后就容易入手了。

可以考虑使用Intel Cilk Plus,这个对代码的改动比较少,兼容C和C++。有兴趣的话,先下个中文手册看看: http://software.intel.com/zh-cn/forums/showthread.php?t=77996&o=a&s=lr

作者: intel_iclifort   发布时间: 2011-06-01