最近のマルチコアおよびマルチプロセッシング ハードウェアの非常に重要性を考慮して、人々が実際に並列コードをどのように書いているかを把握しようとしています。私には、支配的なパラダイムは pthreads (POSIX スレッド) のように見えます。これは Linux でネイティブで、Windows で利用できます。HPC の人々は OpenMP や MPI を使用する傾向がありますが、ここ StackOverflow にはあまりないようです。それとも、移植可能な標準ではなく、Java スレッド化、Windows スレッド化 API などに依存していますか? あなたの意見では、並列プログラミングを行うための推奨される方法は何ですか?
それとも、Erlang、CUDA、RapidMind、CodePlay、Oz、または親愛なる古い Occam などのよりエキゾチックなものを使用していますか?
明確化: Linux、さまざまな UNIX、さまざまなホスト アーキテクチャなどのプラットフォームに移植可能で適用可能なソリューションを探しています。Windows は、サポートしてよかった稀なケースです。したがって、C# と .net はここでは狭すぎます。CLR はクールなテクノロジですが、Linux ホスト用にリリースして、JVM、Python、Erlang、またはその他の移植可能な言語と同じくらい普及するようにしてください。
C++ または JVM ベース: JVM はパフォーマンスを隠す傾向があるため、おそらく C++ です。
MPI: HPC 関係者でさえ、これを使いにくいツールと見なしていることには同意しますが、128000 プロセッサで実行する場合、map/reduce が適用されない問題に対する唯一のスケーラブルなソリューションです。ただし、メッセージ パッシングは、ローカル メモリ/AMP、共有メモリ/SMP、分散ランタイム環境に適切に拡張できる唯一のプログラミング スタイルであるため、非常に洗練されています。
興味深い新しい候補はMCAPIです。しかし、それを実際に経験する時間があった人はまだいないと思います。
全体として、私が知らなかった多くの興味深い Microsoft プロジェクトがあり、Windows API または pthreads が実際に最も一般的な実装であるという状況のようです。