MPIは、並列処理のメッセージパッシングパラダイムです。ここでは、MPI WORLDのすべてのマシンでプログラムを生成するルートマシンがあります。システム内のすべてのスレッドは独立しているため、それらの間の通信の唯一の方法はネットワーク経由のメッセージによるものです。ネットワーク帯域幅とスループットは、MPI実装のパフォーマンスにおける最も重要な要因の1つです。アイデア:マシンごとにスレッドが1つしかなく、コアが多数ある場合は、OpenMP共有メモリのパラダイムを使用して、1台のマシンで問題のサブセットを解決できます。
CUDAは、並列処理のSMTパラダイムです。これは、最先端のGPUアーキテクチャを使用して並列処理を実現します。 GPUには、同じ命令をロックステップ形式で処理する(コアのセット)ブロックが含まれています(これはSIMDモデルに似ています)。したがって、システム内のすべてのスレッドが同じ作業を行う場合は、CUDAを使用できます。しかし、共有メモリとGPUのグローバルメモリの量は限られているため、大きな問題を解決するためにGPUを1つだけ使用するべきではありません。
Hadoopは、Map Reduceパラダイムを使用してコモディティハードウェアの大きな問題を解決するために使用されます。したがって、データの配布やコーナーケースの管理について心配する必要はありません。 Hadoopは、計算ノードにデータを格納するためのファイルシステムHDFSも提供します。
Hadoopの、MPIおよびCUDAは、互いに完全に直交しています。したがって、それらを比較することは公平ではないかもしれません。
しかし、常に(CUDA + MPI)を使用して、GPUのクラスタを使用して問題を解決できます。問題の通信部分を実行するには、単純なコアが必要です。
Hadoopはまったくのパラダイム(MapReduce)を提供するDatastorageです。 MPIを使用するには、PHDが必要であり、それは計算用です。 GPUは単なるハードウェアです。あなたの魅力は何ですか? –
このスレッドをチェックするhttp://stackoverflow.com/questions/10074047/mpi-gpu-how-to-mix-the-two-techniques – Infinity