基于多核的程序優化技術研究報告_第1頁
基于多核的程序優化技術研究報告_第2頁
基于多核的程序優化技術研究報告_第3頁
基于多核的程序優化技術研究報告_第4頁
基于多核的程序優化技術研究報告_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于多核的程序優化技術

多核架構及編程技術內容1、編譯回顧2、基于多核的程序優化技術編譯回顧什么是編譯?用高級語言編制的程序,計算機不能立即執行,必須通過一個“翻譯程序”加工,轉化為與其等價的機器語言程序,機器才能執行。編譯過程是指將高級語言程序翻譯為等價的目標程序的過程。編譯的作用?源程序編譯程序源程序的中間形式輸入數據解釋程序輸出數據詞法分析語法分析語義分析、生成中間代碼代碼優化生成目標程序編譯過程的5個基本階段:編譯過程是指將高級語言程序翻譯為等價的目標程序的過程。優化的分類從優化的層次,與機器是否有關:獨立于機器的優化與目標機無關的優化,通常是在中間代碼上進行的優化。與機器有關的優化:充分利用系統資源(指令系統,寄存器資源)。從優化涉及的范圍,可以分為:局部優化:是指在基本塊內進行的優化。循環優化:對循環語句所生成的中間代碼序列上所進行的優化。 全局優化:跨越多個基本塊的全局范圍內的優化。并行編譯基礎并行編譯系統:就是能夠處理并行程序設計語言,能夠實現串行程序并行化,具有并行優化能力的編譯系統。并行編譯技術的主要內容:串行程序的向量化和并行化。向量化:將串行程序中可向量化部分改寫成用向量運算表示的等價程序;其編譯技術已趨成熟并行化:將串行程序中可并行化部分改寫成在多處理機上并行執行的等價程序;難度大,涉及數據的私有化、分布和通信,以及并行任務劃分等問題。借助于OpenMP。基于多核的程序優化技術并行編程模型并行語言并行編譯器并行語言運行時可伸縮的執行環境多核處理器。多核軟件棧普遍并行編程多核編程和編譯是一重大挑戰:一般的程序員經常需要為多核處理器編程,即使對專家來說,并行編程也是一件難事。如何使并行編程變得容易?并發控制并行化。并發控制通常會使用鎖。——鎖不可取。鎖存在根本性的問題:容易出錯:忽略關鍵鎖、死鎖、有限級倒置、護送問題。難以優化性能:粗粒度鎖會妨礙并行,細粒鎖會導致高開銷。鎖的程序/庫線程不能隨意構成。事務型內存:基本的原子結構:HPCS語言(Fortress、X10、chapel)提供原子結構以取代鎖。多線程的兩種方法本地線程(NativeThreading)OpenMP線程優化關鍵選擇關鍵的代碼(費時間的代碼)進行多線程設計。如果不能確定程序的主要計算部分(?)借助于Intel?VTune?Analyzers來進行程序分析。一些要點建議使用IntelC++編譯器進行編譯程序。使用Intel?MathKernelLibrary(IntelMKL)

IntelMKL函數庫中提供了VML函數,這些函數可以對超越函數(sin,cos,exp,log等)進行優化。提高程序性能。現在串行上要調試通過,然后再進行多核多線程的編程工作。多線程后,用Intel線程監測器進行查找線程錯誤:資源競爭、線程死鎖等問題。用IntelThreadProfiler工具開定位程序中負載不失衡或開銷過大的問題。首先用OpenMP進行并行編程。前面講過,這里不再詳細描述。VTune?PerformanceAnalyzer6.0優化過程-IntelVTuneTM的使用有助于:找到算法的瓶頸由數據規劃引起的瓶頸應用結構的瓶頸系統級以及硬件的瓶頸術語-熱點(hotspot)hotspot是你的代碼花費很長時間執行的區域。通過定位hotspot,VTune性能分析工具可以幫助你分析應用程序的性能。但是簡單的知道hotspot的位置是不夠的,你必須知道什么導致hotspot的產生,怎樣改進通過對熱區的進一步分析,你可以跟蹤關鍵的函數調用,監控特殊的處理器事件,如cachemissHotspot與Bottleneck的區別Bottleneck是系統中性能受到約束的位置VTune?PerformanceAnalyzer幫助你找到并刪除Bottlenecks.找到軟件Hotspots是一個分析方法,幫助你定位Bottlenecks.性能優化方法有三種數據收集器Sampling取樣callgraph調用曲線圖countermonitor計數器監控器兩種跟蹤位置的方法Problem:

我需要知道你在哪花費了多長時間StatisticalSolution:我每30分鐘呼叫你InstrumentationSolution:

每個地方有一個特殊的電話點,你每到一個地點向我報告第一種方法:我固定時間間隔給你電話優點:低開銷:沒有太多的中斷沒有建站點的開銷無論你在那里都能精確定位缺點:如果你的雙手拿滿東西,我必須等待你可能第一次沒有聽到鈴聲,所以我不能精確確定我呼叫你時,你在那里由于你不經常去有一些地方,我可能根本不知道你去過第二種方法:

當你到了,你打電話給我。優點:你到達新的地方我能立刻知道我知道你在一個地方呆了多長時間我知道你到達同一個地方多少次缺點:不知道你在街道內做了什么粒度:站點浪費了大量時間打電話建立站點擴大了街道空間如何識別熱點?SamplingDataCollector–TheStatisticalSolution描述執行的一個側面(柱狀圖)低開銷CallGraphDataCollector–TheInstrumentationSolution函數的時間信息函數調用者和被調用者的關系比sampling的開銷高三種性能監控方式的比較VTune?Projects(項目)什么是Project

?

Project由一個或多個Activities組成什么是Activity?包含你應用程序的信息和希望運行的數據收集器信息。項目的組織如下MyCoolProject1

Activity1(CallGraph) CallGraphResults-3Apr,2007,3:30PM CallGraphResults-4Apr,2007,3:30PM

Activity2(CounterMonitor) CounterMonitorResults-3Apr,2007,4:30PM

Activity3(Sampling) SamplingResults-5Apr,2007,8:30AM Runo Clockticks InstructionsRetired Run1 MispredictedBranchesRetired取樣打斷處理器的執行,獲得執行上下文中斷可以是周期性的,如每秒1,000次采樣采樣的觸發EventBasedSampling(EBS).采樣事件:處理器相關事件,如L2CacheMisses,BranchMispredictions,Floating-pointinstructionsretired,etc.舉例:gzip采樣分析介紹EBS與Sampling用戶界面gzip是一個開放源壓縮程序文件選擇一個新的項目選擇“SamplingWizard”,點擊OK選擇Win32*/Win64*/Linux*Profiling選擇按鈕,然后確定記住:每個活動都有自己的應用/模塊輪廓(profile)打開應用程序:gzip.exe命令行選項:-ftestfile.dat選中Modifydefaultc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論