ここ数年で、OpenCL や CUDA などのシステムを介したデータ並列プログラミングへの大きな変化がありましたが、過去 6 か月以内に出版された書籍でも、データ並列プログラミングのトピックについて言及することはありません。
すべての問題に適しているわけではありませんが、対処されていない大きなギャップがあるようです。
ここ数年で、OpenCL や CUDA などのシステムを介したデータ並列プログラミングへの大きな変化がありましたが、過去 6 か月以内に出版された書籍でも、データ並列プログラミングのトピックについて言及することはありません。
すべての問題に適しているわけではありませんが、対処されていない大きなギャップがあるようです。
最初に、並行プログラミングは必ずしも並列プログラミングと同義ではないことを指摘しておきます。並行プログラミングとは、疎結合のタスクからアプリケーションを構築することです。たとえば、ダイアログ ウィンドウは、個別のタスクとして実装された各コントロールとの対話を持つことができます。一方、並列プログラミングは、何らかの計算タスクのソリューションを複数の実行ハードウェアに分散することを明確に示しています。これは、本質的に常に何らかのパフォーマンス上の理由からです (注: RAM が少なすぎる場合でも、別の方法を使用する場合はパフォーマンス上の理由になります)。交換中です。
それで、私はお返しに尋ねなければなりません:あなたが言及している本は何ですか?それらは並行プログラミングに関するものですか (私はこれらをいくつか持っていますが、そこには興味深い理論がたくさんあります)、それとも並列プログラミングに関するものですか?
それらが本当に並列プログラミングに関するものである場合、私はいくつかの観察を行います。
今日、学術的に並列コンピューティングに取り組んでいる人は、通常、クラスター コンピューティングの分野から来ていると思います。OpenCL と CUDA はグラフィックス プロセッサを使用しますが、より高度なグラフィックス レンダリング アルゴリズムの開発に伴い、多かれ少なかれ意図せずに汎用プロセッサに進化しました。
しかし、グラフィック担当者と高性能コンピューティング担当者は、しばらく前からお互いを「発見」しており、GPU を汎用コンピューティングに使用するための多くの研究が行われています。
「常に」は少し強いです。データ並列処理のトピックを含むリソース ( example ) があります。
Hillis による古典的な本「The Connection Machine」は、すべてデータ並列処理でした。それは私のお気に入りの一つです