2007年2月25日 星期日

OpenMP與MPI的差別

新學期終於開始了,今天上的第一門課就是平行處理(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
中央氣象局超高速運算電腦系統的應用

5 則留言:

sky008888 提到...

"缺點就是要花更多時間在撰寫連結各種機器的程式" => 坦白說這個問題還好, 我們以前在建立平行電腦的時候, 最討厭的是如何把一個很大計算量的東西切割, 尤其是在鄰近區域的 data 交換頻繁的時候, 那時候最大的問題是 => 網路有夠慢, 100 MB/s 根本不夠用....

kewang 提到...

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

sky你有上過平行處理喔?? 那課業上的問題就可以找你啦 XD

yan 提到...

我也好想上這堂…

kewang 提到...

............我才剛考完

應該會爆掉吧 = =

qqegg99 提到...

大大可以請問您是在哪上這堂課的嗎?謝謝您