嵌入式系統(tǒng) 實驗教學課程_第1頁
嵌入式系統(tǒng) 實驗教學課程_第2頁
嵌入式系統(tǒng) 實驗教學課程_第3頁
嵌入式系統(tǒng) 實驗教學課程_第4頁
嵌入式系統(tǒng) 實驗教學課程_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實時系統(tǒng)分析與設計實驗廈門大學信息科學與技術學院實驗用書多核程序設計,浙江大學、復旦大學、清華大學、北京大學、上海交通大學編寫,清華大學出版社,2007年9月第1版實驗一:C+編譯器實驗實驗要求硬件英特爾多核處理器512 MB 內(nèi)存20 GB 硬盤支持32位像素顯卡軟件Windows XP* SP2 Microsoft Visual Studio* .NET 2003 英特爾 C+ 編譯器 9.0 或更高版本英特爾 VTune性能分析器 7.2 或更高版本英特爾 Thread Checker 線程檢查器2.2 或更高版本英特爾 Thread Profiler 線程檔案器 2.2 或更高版本實驗

2、代碼 1、在Visual Studio.NET之后安裝Intel C+編譯器試用版 實驗一、原始編譯 (1)用微軟C+編譯器編譯 將光盤內(nèi)的code文件夾整個復制到硬盤,如E盤根目錄,在上面的命令行界面輸入如下命令跳轉到RayTrace2目錄: cd E: codeCompilerSwitchesraytrace2sourceRayTrace2 然后清理以前生成的文件: nmake /f raytrace2.mak clean 編譯文件: nmake /f raytrace2.mak CPP=cl.exe 運行渲染圖像程序: raytrace2 320 240 Press g to begin

3、 the render Press q to quit the application 將屏幕上顯示的運行時間記錄下來 _。 (2)用英特爾C+編譯器編譯 先清理以前生成的文件: nmake /f raytrace2.mak clean 編譯文件: nmake /f raytrace2.mak 運行渲染圖像程序: raytrace2 320 240 Press g to begin the render Press q to quit the application 將屏幕上顯示的運行時間記錄下來 _。實驗二 高階優(yōu)化,參數(shù)(-O3) 將屏幕上顯示的運行時間記錄下來;實驗三 矢量化優(yōu)化,參數(shù)(

4、-Qxp) 將屏幕上顯示的運行時間記錄下來;實驗四 綜合優(yōu)化,參數(shù)(-O3、-Qxp、IPO、PGO) 將屏幕上顯示的運行時間記錄下來。實驗二: Intel VTune 工具實驗一尋找熱點區(qū)域 基于時鐘事件取樣收集gzip.exe的數(shù)據(jù),并識別最耗時間的函數(shù)。 問題: gzip.exe中哪個函數(shù)消耗了最多的時間? gzip.exe中哪個函數(shù)CPI最高? gzip.exe源代碼中哪一行時鐘周期最多? gzip.exe是多線程程序嗎?實驗二 采樣 問題:(1)觀察每個不同進程運行狀態(tài),單擊ThreadModule按鍵。(2)選擇某段時間并放大(3)查看這段時間區(qū)域的常規(guī)取樣視圖實驗三 調(diào)用曲線圖

5、問題: 哪個函數(shù)消耗的時間最多,它被哪些函數(shù)調(diào)用過?實驗四 使用Windows命令行問題:(1)查看gzip的分析數(shù)據(jù)(2)封裝數(shù)據(jù)并在圖形界面中查看圖形界面顯示樣本分析數(shù)據(jù)。實驗三: MKL 本實驗通過分別用原始運算、DDOT、DGEMV、DGEMM編譯和運行一個矩陣乘法程序,演示了原始計算、一級BLAS、二級BLAS、三級BLAS的性能特征和它們之間的差異。實驗步驟:定位到文件夾code MKL_OverviewDGEMM,打開文件mkl_lab_solution.c,仔細查看4段不同方法實現(xiàn)同一矩陣乘法的代碼;檢查文件Makefile中的include和library路徑,修改為與本機一

6、致;打開開始菜單-所有程序-Intel(R) Software Development Tools-Intel(R) C+ Compiler 9.0-Build Environment for IA-32 Applications,輸入:nmake,編譯完成后目錄下會生成一個matrix.exe文件,輸入:matrix.exe運行程序,會提示輸入矩陣的維數(shù)(輸入的數(shù)字盡量大些,如1000),記錄運行結果并觀察它們的差異:roll_your_own: _DDOT: _DGEMV: _DGEMM: _MKL默認使用單線程,可以通過改變環(huán)境變量OMP_NUM_THREADS來自定義MKL使用的線程數(shù)

7、量,輸入:set OMP_NUM_THREADS=2,重新運行程序觀察結果;改變不同線程數(shù)量,記錄各自的運行結果。問題:當自定義的線程數(shù)量超過處理器核的數(shù)量時,會發(fā)生什么現(xiàn)象?實驗四: OpenMP線程編程實驗一Hello worlds 并行編程實驗;實驗二用OpenMP編寫用積分方法求PI值的算法;實驗三用OpenMP改進Monte Carlo PI算法;實驗五: Intel Thread Checker實驗一 在程序中尋找潛在的數(shù)據(jù)競爭 問題:為什么會出現(xiàn)這些沖突?實驗二 數(shù)據(jù)競爭問題的解決 問題:修改好的多線程程序運行結果和之前的單線程程序一樣嗎?實驗三 檢測死鎖問題 問題:用大的數(shù)據(jù)集

8、可以讓線程檢查器收集到更多的信息,這個說法正確嗎?實驗六: Intel Thread profiler實驗一 Intel Thread Profiler入門實驗二 負載平衡問題 實驗七 Windows多線程編程技術-實時多任務調(diào)度 一、實驗目的1、掌握多線程編程的特點。2、了解實時多任務的調(diào)度和執(zhí)行過程。3、掌握實時多任務的同步問題。二、實驗內(nèi)容通過創(chuàng)建5個優(yōu)先級不同的線程,來模擬實時多任務的調(diào)度執(zhí)行過程,要注意多線程之間的同步問題。實驗八 linux多線程編程技術 一、實驗目的1、掌握Linux多線程編程的特點。2、重點掌握同步、互斥問題的解決。二、實驗內(nèi)容進程同步都要涉及到的一個經(jīng)典問題就是哲學家就餐問題下面來介紹一下哲學家就餐問題: 哲學家就餐問題中,一組哲學家圍坐在一個圓桌旁,每個哲學家的左邊都只有一只筷子(

溫馨提示

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

評論

0/150

提交評論