新學期終於開始了,今天上的第一門課就是平行處理(Parallel Computing),cclin談到了OpenMP與MPI的不同,後來我回家又查了一些資料,才算是有了一個粗略的了解。

要談OpenMP與MPI之前,要先了解兩種記憶體架構"Shared Memory"和"Distributed Memory"。

Shared Memory


共享式記憶體,就是很多顆處理器使用同一塊記憶體,這也就是共享的意思。



看了圖就知道,多顆處理器對同一塊記憶體作存取,通常處理器跟記憶體是在同一個機器上面,所以這種架構只能在單一機器上面運作。

  • 優點是在寫關於記憶體的存取時比較容易,而且因為是在同一塊記憶體上面操作,所以對於記憶體的存取通當也比較快。

  • 缺點就是很難擴充,如果還要增加處理器的話,會造成處理器到記憶體datapath的overhead,處理器愈多,效能愈差。


Distributed Memory


分散式記憶體,就是機器與機器之間透過網路來連結,所以也就是分散的。(廢話 = =)



一樣也是看了圖就知道,多台機器透過網路對同一個程序做處理,所以可以利用網路串連各式各樣的機器,

  • 優點是可以很容易利用網路將所有的機器串連在一起,而且可以很快速的存取記憶體,並不會造成處理器到記憶體之間的overhead。

  • 缺點就是設計師要花更多時間在處理器與處理器之間的資料交換,還有網路速度的問題。網路速度現在在平行電腦上一般都使用光纖加快網路存取速度。


OpenMP就是使用Shared Memory的架構,而MPI是使用Distributed Memory的架構。MPI是一種standard,市面上比較流行的軟體有LAM和MPICH。

參考資料:
四核心Xeon 效能測試 Part 2-OpenMP測試
Introduction to Parallel Computing
中央氣象局超高速運算電腦系統的應用

全站熱搜

kewang 發表在 痞客邦 留言(5) 人氣()