2012-04-19 7 views
20

私はランダムフォレストのようないくつかの機械学習アルゴリズムを知っていますが、本質的には並列に実装する必要があります。私は自宅で仕事をして、これらの3つの並列プログラミングフレームワークがあることを知りたいので、これらの3つのタイプの並列性の主な違いは何かを知ることに興味がありますか?MPI対GPU対Hadoop、これら3つの並列処理の主な違いは何ですか?

特に、私がいくつかの研究を指摘できる場合は、それらの違いを比較すると、それは完璧です!

、各並列処理のための長所と短所を記入してください感謝

+1

Hadoopはまったくのパラダイム(MapReduce)を提供するDatastorageです。 MPIを使用するには、PHDが必要であり、それは計算用です。 GPUは単なるハードウェアです。あなたの魅力は何ですか? –

+1

このスレッドをチェックするhttp://stackoverflow.com/questions/10074047/mpi-gpu-how-to-mix-the-two-techniques – Infinity

答えて

34
  1. MPIは、並列処理のメッセージパッシングパラダイムです。ここでは、MPI WORLDのすべてのマシンでプログラムを生成するルートマシンがあります。システム内のすべてのスレッドは独立しているため、それらの間の通信の唯一の方法はネットワーク経由のメッセージによるものです。ネットワーク帯域幅とスループットは、MPI実装のパフォーマンスにおける最も重要な要因の1つです。アイデア:マシンごとにスレッドが1つしかなく、コアが多数ある場合は、OpenMP共有メモリのパラダイムを使用して、1台のマシンで問題のサブセットを解決できます。

  2. CUDAは、並列処理のSMTパラダイムです。これは、最先端のGPUアーキテクチャを使用して並列処理を実現します。 GPUには、同じ命令をロックステップ形式で処理する(コアのセット)ブロックが含まれています(これはSIMDモデルに似ています)。したがって、システム内のすべてのスレッドが同じ作業を行う場合は、CUDAを使用できます。しかし、共有メモリとGPUのグローバルメモリの量は限られているため、大きな問題を解決するためにGPUを1つだけ使用するべきではありません。

  3. Hadoopは、Map Reduceパラダイムを使用してコモディティハードウェアの大きな問題を解決するために使用されます。したがって、データの配布やコーナーケースの管理について心配する必要はありません。 Hadoopは、計算ノードにデータを格納するためのファイルシステムHDFSも提供します。




Hadoopの、MPIおよびCUDAは、互いに完全に直交しています。したがって、それらを比較することは公平ではないかもしれません。

しかし、常に(CUDA + MPI)を使用して、GPUのクラスタを使用して問題を解決できます。問題の通信部分を実行するには、単純なコアが必要です。

関連する問題