總結了一下個人看Berkeley的《 Architecting Parallel Applications》課程ppt的學習心得:
Lecture1: Introduction and Overview
並行的目的Motivation of parallelism
1、 在硬件上,單處理器性能的提高受到了三方面的壁壘:
功耗、內存以及指令級並行性(ILP),各方面具體內容可參考James Reinders的並行介紹http://www.builder.com.cn/video_intel/video_intel.shtml
2、 Small is beautiful,"smallness within bigness"的思想,提出分而治之的概念,執行一個大的工作任務就等於執行一組相關的小工作任務。
3、 並行化硬件的未來趨勢:future general-purpose processors will be built from small (5-9 stage pipeline) energy efficient processing elements
4、 同時在軟件並行編程上我們必須滿足:Productively: programmer’s time, time-to-market;Efficiently: meeting performance targets that the hardware should be able to realize;Correctly: software meets its functional specification。
目前未能解決的難題How not to solve the problem
有了多核體系架構的支持,我們在並行編程上遇到以下幾種可能以及挑戰
1、在原有代碼上不斷地修改並監測其性能,但是經常會失敗並且性能難以提高。
2、通過一個新的並行語言來編程,目前200種並行語言仍未有合適所有應用的。
3、通過編寫一個超級編譯器來將代碼編譯爲並行執行。
在將來,並行編程並不是在於訓練編程人員學習如何寫並行程序。而是在於各領域的專家去使用並行應用框架來編寫應用程序。
解決方法Our approach
以滿足productivity efficiency correctness爲前提,建立起軟件架構-編程模型與環境-編程語言-編譯器與調試器-硬件架構,其中的關鍵在於設計模式design patterns和模式語言pattern language。
Example: CBIR