看起来多核处理器及其相关的复杂性似乎已经成为了不可避免的趋势。我正在计划一个软件项目,这个项目肯定会从并行计算中获益。问题是,我很少有编写并发软件的实际经验。虽然我在大学里学过这个知识,并且对相关概念和理论非常熟悉,但是自从毕业后就没有在多处理器上构建过软件。
那么我的问题是,如何最好地开始多处理器编程? 我比较熟悉使用C/C++和Obj-C在Mac OS X上进行Linux开发,但几乎没有Windows的经验。另外,我的计划中的软件项目需要对大量数据进行FFT和可能的浮点数比较。
有OpenCL、OpenMP、MPI、POSIX线程等技术...应该从哪些技术入手呢?
以下是我正在考虑的几个选项,但不确定它们是否能帮助我实现目标:
- 我应该获取Snow Leopard,并尝试让OpenCL Obj-C程序在我的笔记本电脑上的ATI X1600 GPU上运行吗?或者
- 我应该获取Playstation,并尝试编写C代码,以利用其六个可用的Cell SPE核心?或者
- 我应该构建一个Linux桌面系统,安装Nvidia显卡,并尝试使用CUDA开发?
提前感谢您的帮助。
Array.map ((+) 3) [|1..10|]
。这样你就写了一个串行的F#程序。然后输入Array.Parallel.map ((+) 3) [|1..10|]
。这样你就进行了并行编程。 - J D