所以看起来多核及其所有相关的并发症都将继续存在。我正在计划一个肯定会从并行性中受益的软件项目。问题是我几乎没有编写并发软件的经验。我在大学学习过它,并且很好地理解了概念和理论,但是从学校开始,我在构建可在多个处理器上运行的软件方面的有用经验为零。
所以我的问题是,开始多处理器编程的最佳方式是什么? 我主要熟悉 Mac OS X 上的 C/C++ 和 Obj-C 中的 Linux 开发,Windows 经验几乎为零。此外,我计划的软件项目将需要对大量数据进行 FFT 和可能的浮点比较。
有 OpenCL、OpenMP、MPI、POSIX 线程等……我应该从哪些技术入手?
以下是我正在考虑的几个堆栈选项,但不确定它们是否会让我尝试朝着我的目标努力:
- 我应该获得 Snow Leopard 并尝试让 OpenCL Obj-C 程序在我的笔记本电脑上的 ATI X1600 GPU 上运行吗?或者
- 我是否应该获得一个 Playstation 并尝试编写 C 代码以跨越其六个可用的 Cell SPE 内核?或者
- 我应该用 Nvidia 卡构建一个 Linux 机器并尝试使用 CUDA 吗?
在此先感谢您的帮助。