2012-04-19 7 views
20

Ich weiß für einige maschinelle Lernalgorithmen wie Random Forest, die von Natur aus parallel implementiert werden sollten. Ich mache eine Hausarbeit und finde heraus, dass es diese drei parallelen Programmierrahmen gibt, also bin ich daran interessiert zu wissen, was der Hauptunterschied zwischen diesen drei Arten von Parallelität ist?MPI vs GPU vs Hadoop, was sind die Hauptunterschiede zwischen diesen drei Parallelen?

Vor allem, wenn jemand mich auf einige Studie zeigen kann vergleichen Sie den Unterschied zwischen ihnen, das wird perfekt sein!

Liste Bitte beachten Sie die Vor-und Nachteile für jede Parallelität dank

+1

Hadoop ist nur ein Datastorage, der Ihnen Mangeling-Paradigmen (MapReduce) zur Verfügung stellt. Für die Verwendung von MPI benötigen Sie einen PHD und es ist für die Berechnung. GPU ist nur Hardware. Was ist Ihr Appell? –

+1

Überprüfen Sie diesen Thread http://stackoverflow.com/questions/10074047/mpi-gpu-how-to-mix-the-two-techniques – Infinity

Antwort

34
  1. MPI ist eine Nachricht, Paradigma der Parallelität vorbei. Hier haben Sie eine Root-Maschine, die auf allen Maschinen ihrer MPI WORLD Programme erzeugt. Alle Threads im System sind unabhängig und daher ist die einzige Art der Kommunikation zwischen ihnen durch Nachrichten über das Netzwerk. Die Netzwerkbandbreite und der Durchsatz sind einer der wichtigsten Faktoren für die Leistung der MPI-Implementierung. Idee: Wenn es nur einen Thread pro Maschine gibt und Sie viele Kerne darin haben, können Sie das OpenMP-Shared-Memory-Paradigma verwenden, um Teilmengen Ihres Problems auf einer Maschine zu lösen.

  2. CUDA ist ein SMT-Paradigma der Parallelität. Es verwendet modernste GPU-Architektur, um Parallelität bereitzustellen. Eine GPU enthält (Blöcke von (Satz von Kernen)), die an derselben Anweisung in einer Verriegelungsschrittweise arbeiten (dies ist ähnlich dem SIMD-Modell). Wenn also alle Threads in Ihrem System viel Arbeit leisten, können Sie CUDA verwenden. Aber die Menge an gemeinsam genutztem Speicher und globalem Speicher in einer GPU ist begrenzt und daher sollten Sie nicht nur eine GPU verwenden, um ein riesiges Problem zu lösen.

  3. Hadoop wird verwendet, um große Probleme auf Standardhardware mit dem Map Reduce-Paradigma zu lösen. Daher müssen Sie sich keine Gedanken über die Verteilung von Daten oder die Verwaltung von Fällen machen. Hadoop bietet auch ein Dateisystem-HDFS zum Speichern von Daten auf Rechenknoten.




Hadoop, MPI und CUDA zueinander sind vollständig orthogonal. Daher ist es möglicherweise nicht fair, sie zu vergleichen.

Sie können jedoch immer (CUDA + MPI) verwenden, um ein Problem mit einem Cluster von GPUs zu lösen. Sie benötigen immer noch einen einfachen Kern, um den Kommunikationsteil des Problems auszuführen.