OpenMP并行實(shí)驗(yàn)報(bào)告.docx

OpenMP并行實(shí)驗(yàn)報(bào)告.docx

ID:60775398

大小:396.48 KB

頁(yè)數(shù):16頁(yè)

時(shí)間:2020-12-17

OpenMP并行實(shí)驗(yàn)報(bào)告.docx_第1頁(yè)
OpenMP并行實(shí)驗(yàn)報(bào)告.docx_第2頁(yè)
OpenMP并行實(shí)驗(yàn)報(bào)告.docx_第3頁(yè)
OpenMP并行實(shí)驗(yàn)報(bào)告.docx_第4頁(yè)
OpenMP并行實(shí)驗(yàn)報(bào)告.docx_第5頁(yè)
資源描述:

《OpenMP并行實(shí)驗(yàn)報(bào)告.docx》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、并行實(shí)驗(yàn)報(bào)告一、積分計(jì)算圓周率1.1積分計(jì)算圓周率的向量?jī)?yōu)化1.1.1串行版本的設(shè)計(jì)任務(wù):理解積分求圓周率的方法,將其用C代碼實(shí)現(xiàn)。注意:理論上,dx越小,求得的圓周率越準(zhǔn)確;在計(jì)算機(jī)中由于表示的數(shù)據(jù)是有精度范圍的,如果dx太小,積分次數(shù)過(guò)多,誤差積累導(dǎo)致結(jié)果不準(zhǔn)確。以下為串行代碼:#include#include#defineNdoubleget_pi(intdt){doublepi=0.0;doubledelta=1.0/dt;inti;for(i=0;i

2、++){doublex=(double)i/dt;pi+=delta/(1.0+x*x);}returnpi*4;}intmain(){intdx;doublepai;doublestart,finish;dx=N;start=clock();pai=get_pi(dx);finish=clock();printf("%.8lf",pai);printf("%.8lfS",(double)(finish-start)/CLOCKS_PER_SEC);return0;}時(shí)間運(yùn)行如下:第一次:tim

3、e=0.S第二次:time=0.S第三次:time=0.S三次平均為:0.02508S1.1.2SSE向量?jī)?yōu)化版本設(shè)計(jì)任務(wù):此部分需要給出單精度和雙精度兩個(gè)優(yōu)化版本。注意:(1)測(cè)試均在劃分度為10的7次方下完成。以下是SSE雙精度的代碼:#include#include#include#defineNdoubleget_pi(intdt){doublepi=0.0;doubledelta=1.0/dt;inti;for(i=0;i

4、+){doublex=(double)i/dt;pi+=delta/(1.0+x*x);}returnpi*4;}doubleget_pi_sse(size_tdt){doublepi=0.0;doubledelta=1.0/dt;__m128dxmm0,xmm1,xmm2,xmm3,xmm4;xmm0=_mm_set1_pd(1.0);xmm1=_mm_set1_pd(delta);xmm2=_mm_set_pd(delta,0.0);xmm4=_mm_setzero_pd();for(longint

5、i=0;i<=dt-2;i+=2){xmm3=_mm_set1_pd((double)i*delta);xmm3=_mm_add_pd(xmm3,xmm2);xmm3=_mm_mul_pd(xmm3,xmm3);xmm3=_mm_add_pd(xmm0,xmm3);xmm3=_mm_div_pd(xmm1,xmm3);xmm4=_mm_add_pd(xmm4,xmm3);}doubletmp[2]__attribute__((aligned(16)));_mm_store_pd(tmp,xmm4);pi

6、+=tmp[0]+tmp[1]/*+tmp[2]+tmp[3]*/;returnpi*4.0;}intmain(){intdx;doublepai;doublestart,finish;dx=N;start=clock();pai=get_pi_sse(dx);finish=clock();printf("%.8lf",pai);printf("%.8lfS",(double)((finish-start)/CLOCKS_PER_SEC));return0;}時(shí)間運(yùn)行如下:第一次:time=0.

7、S第二次:time=0.S第三次:time=0.S三次平均為:0.00783S以下是SSE單精度的代碼:#include#include#include#defineNfloatget_pi_sse(size_tdt){floatpi=0.0;floatdelta=1.0/dt;__m128xmm0,xmm1,xmm2,xmm3,xmm4;xmm0=_mm_set1_ps(1.0);xmm1=_mm_set1_ps(delta);xmm2=_m

8、m_set_ps(delta*3,delta*2,delta,0.0);xmm4=_mm_setzero_ps();for(longinti=0;i<=dt-4;i+=4){xmm3=_mm_set1_ps((float)i*delta);xmm3=_mm_add_ps(xmm3,xmm2);xmm3=_mm_mul_ps(xmm3,xmm3);xmm3=_mm_add_ps(xmm0,xmm3);xmm3=_mm_div_ps(xmm1,

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。