名稱
算法骨架,英文全稱是:algorthmic skeleton,是一種並行編程環境。並行編程環境為構建並行程式提供了基本工具、語言功能和套用編程接口(API)。Murray.Cole最早引入了skeleton(algorithmic skeleton)的概念,其中skeleton是算法的抽象,是對重複出現的算法和通信模式的精確、嚴格的定義,它對一系列的套用而言是公共的,並且可以並行地實現。
作用
通過提供算法骨架,使得用戶只需考慮問題的類型,適合哪種算法骨架,而不必顯式地去處理如並行單元間通訊、同步等低層的並行特性,同時算法骨架還是與具體問題中無關的,從具體的問題和具體的並行環境都相解脫出來。所以算法骨架的作用可以總結為:
(1)通過提高並行開發的抽象層次,簡化了並行程式設計。
(2)通過skeleton的實現細節對用戶透明,提高skeleton的可重用性和可移植性。
(3)在特定的體系結構上,skeleton的實現能夠充分利用最佳化技術,從而有效提高並行程式的性能。
skeleton的上述思想與軟體工程中許多成功的思想是相同的,如結構化的程式設計、面向對象編程和設計模式等。值得一提的是,設計模式的思想已被擴充到並行領域。由於skeleton與設計模式概念的相關性,基於skeleton的並行程式設計領域將基於skeleton與基於模式的並行研究工作很好地融合在一起,以提供一種通用的、更高層次的並行程式設計方法。
在特定的體系結構上,算法骨架能夠充分利用最佳化技術,從而有效提高並行程式的性能,而這並不是所有從事並行編程的程式設計師所具備的,或者說讓每一個並行程式設計師都編出很優秀的並行是很難的;這裡的算法骨架獨立於各種並行計算環境,與各種並行計算環境無關的,並針對不同的計算環境做出相應的調整。
當前國內外研究現狀
國內外關於算法骨架的研究也很多。
不同的組織都有各自的算法骨架,如Cole的eskel,Darlington、Rabhi、P3L等知名的骨架;
前景
並行已經成為程式設計中的一個趨勢,越來越高要求的計算,越來越多的多核處理器,都預示著未來計算機世界的並行趨勢已成必然。