2012-04-19 83 views
20

我知道一些像隨機森林這樣的機器學習算法,它們本質上應該是並行實現的。我做了一個家庭作業,發現有三個並行編程框架,所以我有興趣知道這三種並行性之間的主要區別是什麼?MPI vs GPU vs Hadoop,這三種並行性的主要區別是什麼?

特別是,如果有人能指點我一些研究比較它們之間的差異,那將是完美的!

請列出每個並行的利弊,感謝

+1

Hadoop只是一個Datastorage,它爲您提供了一些擴展範例(MapReduce)。對於使用MPI,您需要一個PHD並用於計算。 GPU只是硬件。你的上訴是什麼? – 2012-04-20 05:40:17

+1

查看此線程http://stackoverflow.com/questions/10074047/mpi-gpu-how-to-mix-the-two-techniques – Infinity 2012-04-20 07:22:05

回答

34
  1. MPI是通過並行模式的消息。在這裏,你有一臺在其MPI WORLD中的所有機器上產生程序的根機器。系統中的所有線程都是獨立的,因此它們之間通信的唯一方式是通過網絡上的消息。網絡帶寬和吞吐量是MPI實施性能中最關鍵的因素之一。想法:如果每臺機器只有一個線程,並且其上有許多內核,則可以使用OpenMP共享內存範例在一臺機器上解決問題的子集。

  2. CUDA是一種並行性的SMT範例。它使用最先進的GPU架構來提供並行處理。 GPU包含(一組(核心)塊)以鎖步方式處理同一指令(這與SIMD模型相似)。因此,如果系統中的所有線程都做了很多相同的工作,則可以使用CUDA。但GPU中共享內存和全局內存的數量是有限的,因此您不應該只使用一個GPU來解決一個巨大的問題。

  3. Hadoop用於使用Map Reduce範例解決商品硬件上的大問題。因此,您不必擔心分發數據或管理角落案例。 Hadoop還提供了用於在計算節點上存儲數據的文件系統HDFS。




的Hadoop,MPI和CUDA是完全相互正交的。因此,比較它們可能並不公平。

雖然,您可以隨時使用(CUDA + MPI)使用GPU集羣來解決問題。您仍然需要一個簡單的核心來執行問題的通信部分。

相關問題