在當前最流行的高性能并行體系結構中比較常用的并行編程環境分為兩類:消息傳遞和共享存儲。MPI是基于消息傳遞的經典代表,是消息傳遞井行程序設計的標準,用于構建高可靠的、可伸縮的、靈活的分布式應用程消息傳遞井行處理開銷比較大,適合于大粒度的進程級并行計算,相對其他并行編程環境,它具有很好的可移植性,幾乎能被所有的并行環境支持;還具有很好的可擴展性,具有完備的異步通信功能,能按照用戶的要求很好地分解問題,組織不同進程之間進行數據交換,適合大規模可擴展性的并行算法。
MPI模式在學術研究領域應用較多,而在商業領域,云計算系統大多采用的是Google云計算系統中的MapReduce并行編程模型。云計算強調的就是簡單的編程模型,而MapReduce就是一種高效的、簡單的并行編程模式,也是一種高效的任務調度器。MapReduce這種編程模型不僅適用于云計算,在多核和多處理器、Cell processor以及異構機群上同樣有良好的性能。利用MapReduce ,程序員能夠輕松地編寫緊耦合的程序,在運行時能高效地調度和執行任務,在實現時,在Map函數中指定對各分塊數據的處理過程,在Reduce函數中指定如何對分塊數據處理的中問結果進行歸約。用戶只需要指定Map和Reduce函數來編寫分布式的并行程序,不需要關心如何將輸人的數據分塊、分配和調度,同時系統還將處理集群內節點失敗及節點間通信的管理等。而MPI僅僅是一個并行計算標準,沒有相應的分布式文件系統的支撐,在大數據場景下大文件的存儲及訪問都會成為一個問題,同時用戶還需要考慮集群節點之間的通信協調、容錯等問題,這些使得MPI的編程難度比較大,集群本身的規模也很難做到像MapReduce那樣的超大規模。
?
?
本文轉自大數據躺過的坑博客園博客,原文鏈接:http://www.cnblogs.com/zlslch/p/5080596.html,如需轉載請自行聯系原作者