したがって、マルチコアのように見え、それに関連するすべての複雑さがそのまま残ります。私は、並列処理から確実に恩恵を受けるソフトウェア プロジェクトを計画しています。問題は、並行ソフトウェアを書いた経験がほとんどないことです。私は大学でそれを学び、概念と理論を非常によく理解していますが、学校以来、複数のプロセッサで実行するソフトウェアを構築するのに役立つ経験はありません。
私の質問は、マルチプロセッサ プログラミングを始めるための最良の方法は何ですか? Windows の経験はほとんどなく、Mac OS X での C/C++ および Obj-C による Linux 開発に精通しています。また、私が計画しているソフトウェア プロジェクトでは、FFT と、多くのデータの浮動小数点比較が必要になるでしょう。
OpenCL、OpenMP、MPI、POSIX スレッドなどがあります。どのテクノロジから始めるべきですか?
以下に、私が検討しているいくつかのスタック オプションを示しますが、それらが私の目標に向けて実験できるかどうかはわかりません。
- Snow Leopard を入手して、ラップトップの ATI X1600 GPU で OpenCL Obj-C プログラムを実行できるようにする必要がありますか? また
- プレイステーションを手に入れて、利用可能な 6 つの Cell SPE コアを処理する C コードを書いてみるべきでしょうか? また
- Nvidia カードを搭載した Linux ボックスを構築し、CUDA で作業してみるべきですか?
よろしくお願いします。