并行計算-實驗二-矩陣乘法的OpenMP實現(xiàn)及性能分析_第1頁
并行計算-實驗二-矩陣乘法的OpenMP實現(xiàn)及性能分析_第2頁
并行計算-實驗二-矩陣乘法的OpenMP實現(xiàn)及性能分析_第3頁
并行計算-實驗二-矩陣乘法的OpenMP實現(xiàn)及性能分析_第4頁
并行計算-實驗二-矩陣乘法的OpenMP實現(xiàn)及性能分析_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、并行計算-實驗二-矩陣乘法的OpenM速現(xiàn)及性能分析深圳大學(xué)實 驗 報 告課程名稱:并行計算實驗名稱:矩陣乘法的 OpenMP實現(xiàn)及性能分析姓 名:學(xué) 號:班 級:實驗日期:2011年10月21日、11月4日一.實驗?zāi)康?)用OpenMP實現(xiàn)最基本的數(shù)值算法“矩陣乘 法”2)掌握for編譯制導(dǎo)語句3)對并行程序進行簡單的性能二.實驗環(huán)境1)硬件環(huán)境:32核CPU、32G內(nèi)存計算機;2)軟件環(huán)境:Linux、Win2003、GCC、MPICH、 VS2008;4) Windows登錄方式:通過遠程桌面連接 192.168.150.197,用戶名和初始密碼都是自己的 學(xué)號。三.實驗內(nèi)容1 .用Op

2、enMP編寫兩個n階的方陣a和b的相 乘程序,結(jié)果存放在方陣c中,其中乘法用for 編譯制導(dǎo)語句實現(xiàn)并行化操作,并調(diào)節(jié) for編譯 制導(dǎo)中schedule的參數(shù),使得執(zhí)行時間最短,寫 出代碼。方陣a和b的初始值如下:1,2,3,,n1,1,1,,12,3,4,,n11,1,1,,13,4,5,,n21,1,1,,1ab.n, n 1,n2,2n 11,1,1,.,1 輸入:方陣的階n、并行域的線程數(shù)輸出:c中所有元素之和、程序的執(zhí)行時間提示:a,b,c的元素定義為int型,c中所有元素之 各定義為long long型。Windows 計時:用<time.h> 中的 clock_t

3、clock( void )函數(shù)得 到當(dāng)前程序執(zhí)行的時間Linux計時:#include <sys/time.h>timeval start,end;gettimeofday(&start,NULL); gettimeofday(&end,NULL); cout<<"executiontime:"<<(end.tv_sec-start.tv_sec)+(double)(end.tv_u sec-start.tv_usec)/ 1000000<<"seconds" <<endl;答:

4、在 windows 下使用 Microsofe Visual Studio 編程,源代碼如下:#include<omp.h>#include<stdio.h>#include<time.h>#define NN 2000int aNNNN, bNNNN;long long cNNNN;void solve( int n, int num_thread) int i, j, t, k, time;clock_t startTime, endTime;long long sum;omp_set_num_threads(num_thread);for (i=0;i

5、<n;i+)/對矩陣a和矩陣b進行初始化t=i+1;for (j=0;j<n;j+) aij=t+;bij=1; startTime=clock(); sum=0;#pragma omp parallel shared(a,b,c)private (i,j,k)#pragma omp for schedule(dynamic)for (i=0;i<n;i+)for (j=0;j<n;j+)cij=0; for (k=0;k<n;k+) cij+=aik*bkj; for (i=0;i<n;i+) for (j=0;j<n;j+) sum+=cij;en

6、dTime=clock();time=endTime-startTime;printf("sum=%11d time=%dmsn",sum,time);int main()int n, num_thread;while (scanf( "%d%d" ,&n,&num_thread)!=EOF) solve(n,num_thread);return 0;2.分析矩陣相乘程序的執(zhí)行時間、加速比和效率:方陣階固定為1000,節(jié)點數(shù)分別取1、2、4、8、16和32時,為減少誤差,每項實驗進行 5 次,取平均值作為實驗結(jié)果。答:串行執(zhí)行時程序的執(zhí)行

7、時間為:T =15.062s加速比=順序執(zhí)行時間/并行執(zhí)行時間 效率=加速比/節(jié)點數(shù)表1不同節(jié)點數(shù)下程序的執(zhí)行時間(秒)12481632點數(shù)實果第 16.640 8.172 4.078 2.1251次第 16.422 8.156 4.172 2.1412次第 16.406 8.266 4.078 2.1251.093 0.5941.078 0.5781.094 0.5633次第 16.781 8.172 4.079 2.109 1.094 0.5634次第 16.422 8.171 4.078 2.125 1.093 0.5785次平 16.5348.1874.0972.1251.0900.5

8、75均 240042值圖2不同節(jié)點數(shù)下程序的加速比不同節(jié)點數(shù)下程序的效率圖3不同節(jié)點數(shù)下程序的效率執(zhí)行時間的分析:隨著節(jié)點數(shù)的增加,程序的執(zhí)行時間減少,大 概可以從結(jié)果中得出,隨著節(jié)點書的增加一倍, 執(zhí)行時間減少一半加速比的分析:隨著節(jié)點數(shù)的增加,程序的加速比增加,大概 可以從結(jié)果中得出,隨著節(jié)點書的增加一倍,加 速相應(yīng)的增加接近一倍效率的分析:隨著節(jié)點數(shù)的增加,程序的效率逐漸減少3.分析矩陣相乘程序的問題規(guī)模與效率的關(guān)系:固定節(jié)點數(shù)為4,讓方陣階從200到1600 之間變化,每隔100取一個值。(為了減少時間, 每項實驗可只執(zhí)行1次)答:表2相同節(jié)點數(shù)下不同問題規(guī)模程序的執(zhí)行時 間與效率方陣階 數(shù)并行執(zhí)行時間串行執(zhí)行時間效率2000.0150.0470.7833333000.0160.1091.7031254000.0630.2971.1785715000.1560.6571.0528856000.4061.641.0098527000.9073.5780.9862188001.6096.360.9881919002.57810.1090.98031410003.81214.8910.97658711005.3921.0320.9755112007.34428.7340.97814513009.68837.9370.978969140012.42

溫馨提示

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

評論

0/150

提交評論