版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗環(huán)境:Win7或者Win XP都可以,但是要安裝VS2008以上版本。因 為要實現(xiàn)分布式,形成多線程,電腦至少是雙核系統(tǒng)。本次試驗用的 編程語言是C#,主要用的是OpenMp實現(xiàn)多核開發(fā)技術(shù)。OpenMp簡單介紹:OpenMP起源于ANSIX3H5標準,它具有簡單、移植性好和可 擴展等優(yōu)點,是共享存儲系統(tǒng)編程的一個工業(yè)標準。OpenMP使用 Fork-Join并行執(zhí)行模型。支持增量并行化 (IncrementalParallelization)。實際上 OpenMP 并不是一門新的 語言,它是對基本語言(如Fortan77、Fortan90、C、C+等)的 擴展OpenMP規(guī)范中定義的編譯
2、制導(CompilerDirective)、運 行 庫(RuntimeLibrary)和環(huán)境變量(EnvironmentVariables),能夠使 用戶在保證程序的可移植性的前提下,按照標準將已有的串行程序 逐步并行化。制導指令是對程序設(shè)計語言的擴展,進一步提供了對并行區(qū)域、工作 共享、同步構(gòu)造的支持,并且支持數(shù)據(jù)的共享和私有化。這樣,用戶 對串行程序添加制導指令的過程,就類似于進行顯式并行程序設(shè)計。 運行庫和環(huán)境變量,使得用戶可以調(diào)整并行程序的執(zhí)行環(huán)境。OpenMP的提出,是希望遵循該并行編程模型的并行程序,可以在 不同的產(chǎn)商提供的共享存儲體系結(jié)構(gòu)間比較容易地移植。實際上,已 經(jīng)有許多硬件
3、和軟件供應商提供支持OepnMP的編譯器,如DEC、 Intel、IBM、HP、Sun、SGI、及 U.S.DOEASCIprogram 等,并 且包括了 Linux,UNIX和Windows等多種操作系統(tǒng)平臺。目前, Fortran77、Fortran90、C、C+語言的實現(xiàn)規(guī)范已經(jīng)完成。OpenMp并行編程模型:首先,OpenMP是基于線程的并行編程模型 (ProgrammingModel),個共享存儲的進程由多個線程組成, OpenMP就是基于已有線程的共享編程范例;其次,OpenMP是一 個外部的編程模型,而不是自動編程模型,它能夠使程序員完全控制 并行化,OpenMP使用Fork-J
4、oin并行執(zhí)行模型。所有的OpenMP 程序開始于一個單獨的主線程(MasterThread )。主線程會一直串 行的執(zhí)行,直到遇見第一個并行域(ParallelRegion)才開始并行執(zhí)行。 接下來的過程如下:Fork:主線程創(chuàng)建一隊并行的線程,然后,并行域中的代碼在不同 的線程隊中并行執(zhí)行;Join:當主線程在并行域中執(zhí)行完之后,它們或被同步或被中斷,最 后只有主線程在執(zhí)行。實際上,所有OpenMP的并行化,都是通過使用嵌入到C/C+或 Fortran源代碼中的編譯制導語句來達到的。并且,一個OpenMP 應用編程接口 (API)的并行結(jié)構(gòu)可以嵌入到別的并行結(jié)構(gòu)中去。應用編程接口還可以隨著
5、不同并行域的需要動態(tài)地改變線程數(shù)實驗內(nèi)容介紹:通過三種不同的方法來求取圓周率n,每種方法都運用串行和并行 來求取n值,并經(jīng)過多次測試,求得串行和并行的時間t1,t2,計算 加速比t1/t2,最后通過求出n值的平均值可以知道那種方法最好, 也明顯能從中看出并行效率比串行效率好。當然有可能在計算過程中 由于給出的點數(shù)太少或者其它個別原因造成出現(xiàn)數(shù)據(jù)錯誤或者誤差 較大時,可以把這些數(shù)據(jù)排除。實驗一、蒙特卡洛法求圓周率利用單位圓與邊長為1的正方形面積之比來計算冗的近似值。具體j.K.GC.40.21.基本思想思想如下:如圖1所示,單位圓的1/4為一個扇形G,,它是邊長為1的正方形I) 0.2n.40.
6、6(L$: I的一部分??紤]扇形面積在正方形面積中所占的比例|,得出其結(jié)果n/4,然后再乘以4就可以得到n的值。這里如何計算比例K,運用蒙特卡洛方法的隨機投點思想。在正 方形中隨機投入很多點,使所投點落入在正方形中每一個位置的機會 均等,然后考察有多少點落入扇形區(qū)域內(nèi)。其中落在扇形內(nèi)點的個數(shù) m與投點總數(shù)n之比就是k的近似值。2運行結(jié)果本次試驗測試投點總數(shù)為10000000具體運行結(jié)果如下表所示。串行n值并行n值串行時間并行時間加速比3.1409323.0451269305301.7547173.1409323.0370578915241.7003823.1409323.00769491555
7、31.6546113.1409323.0811979697051.3744683.1409323.0373449056041.498344見附錄1實驗二、擬蒙特卡洛法求圓周率1.基本思想利用單位圓與邊長為1的正方形面積之比來計算冗的近似值。具體 思想如下:如圖1所示,單位圓的1/4為一個扇形G,它是邊長為1的正方形的一部分??紤]扇形面積在正方形面 積中所占的比例k,得出其結(jié)果n/4然后再乘以4就可以得到n的值。和蒙特卡洛方法類似。如圖1,把x軸,y軸,01等分成1000 份。1001*1001個點,統(tǒng)計落入1/4圓中的點數(shù),然后再除以 1001*1001,再乘以4就是冗的值。2.運行結(jié)果串行n
8、值并行n值串行時間并行時間加速比3.13923832307693.13923835000003.1392383.1392383381.8333333.13923835500003.1392383888889見附錄2實驗三、積分法求圓周1 .基本思想利用n =,求出y=_ , x=0 , x=1, y=0圍成封閉區(qū)域0 1+x21+x2的面積就是n的值。2.運行結(jié)果串行n值并行n值串行時間并行時間加速比3.1416233.141623851.6000003.1416233.141623942.
9、2500003.1416233.141623741.7500003.1416233.141623951.8000003.1416233.141623842.0000003.源代碼見附錄3實驗結(jié)果分析當然我們這里只比較串行運行的結(jié)果。實驗一的n值平均值為:3.140932實驗二的冗值平均值為:3.139238實驗三的n值平均值為:3.1416通過對以上三種方法的比較,可以發(fā)現(xiàn),積分法求得的n值更為 準確,速度也更快。int_tmain(intargc, _TCHAR* argv)DWORDstartTime,endTime,startTime1,endTime1;longarcNum=0,arc
10、Num1=0;longdoublePAI,time,PAI1,time1;longdoubleradio;startTime=timeGetTime();for(inti=0;i10000000;i+)doublex=( longdouble)rand()/(longdouble)RAND_MAX;doubley=( longdouble)rand()/(longdouble)RAND_MAX;if(x*x+y*y) = 1)arcNum + +;PAI=( longdouble)arcNum/10000000)*4;endTime=timeGetTime();time=endTime-sta
11、rtTime;printf( PAI=%f,time=%fn” ,PAI,time);startTime1=timeGetTime();#pragmaompparallel forfor(inti=0;i10000000;i+)doublex=( longdouble)rand()/(longdouble)RAND_MAX;doubley=( longdouble)rand()/(longdouble)RAND_MAX;if(x*x+y*y) = 1)arcNum1+;PAI1=( longdouble)arcNum1/10000000)*4;endTime1=timeGetTime();ti
12、me1=endTime1-startTime1;printf(PAI=%f,time=%fn ,PAI1,time1);radio=time/time1;printf(radio=%f” ,radio);getchar();return0;int_tmain(intargc, _TCHAR* argv)DWORDstartTime,endTime,startTime1,endTime1;longcout=0;charch64;longcout1=0;charch164;longcout2=0;longdoublePAI,time,PAI1,time1;longdoubleradio;start
13、Time=timeGetTime();for(inti=0;i = 1000;i+)for(intj=0;j = 1000;j+)doublex=( longdouble)i)/1000;doubley=( longdouble)j)/1000;if(x*x+y*y)1)cout+;PAI=( longdouble)cout/(1001*1001)*4;endTime=timeGetTime();time=endTime-startTime;printf(cout=%ld,PAI=%f,time=%fn ,cout,PAI,time)startTime1=timeGetTime();#prag
14、maompparallelsections#pragmaompsectionfor(inti=0;i500;i+)for(intj=0;j = 1000;j+)doublex=( longdouble)i)/1000;doubley=( longdouble)j)/1000;if(x*x+y*y)1)cout1+;#pragmaompsectionfor(inti=500;i = 1000;i+)for(intj=0;j = 1000;j+)doublex=( longdouble)i)/1000;doubley=( longdouble)j)/1000;if(x*x+y*y)1)cout2+
15、;PAI1=( longdouble)(cout1+cout2)/(1001*1001)*4;endTime1=timeGetTime();time1=endTime1-startTime1;printf(cout1=%ld,cout2=%ld,PAI1=%f,time1=%fn ,cout1,cout2,PAI1,time1);radio=time/time1;printf(radio=%f” ,radio);getchar();return0;int_tmain(intargc, _TCHAR* argv)DWORDstartTime,endTime;longdoublePAI=0,tim
16、e;longdoubleradio;startTime=timeGetTime();for(inti=0;i = 10000;i+)longdoublex=( longdouble)i/10000;longdoubley=4.0/(1+x*x);longdoublex0=( longdouble)1/10000;PAI+=x0*y;endTime=timeGetTime();time=endTime-startTime;printf( PAI=%f,time=%fn ,PAI,time);DWORDstartTime1,endTime1;longdoublePAI1=0,time1;startTime1=timeGetTime();#pragmaompparallel forfor(inti=0;i = 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市規(guī)劃臨時用地租賃協(xié)議2篇
- 2025年度智能車位共享平臺租賃合同模板4篇
- 二零二五年度內(nèi)地居民離婚后財產(chǎn)分割法律援助合同
- 2025年度美容院美容院連鎖品牌形象設(shè)計與推廣合同
- 2025年度土地承包經(jīng)營權(quán)租賃與農(nóng)業(yè)機械化服務合同
- 二零二五年度噴漆工職業(yè)危害告知與培訓實施合同
- 2025年無子女離婚撫養(yǎng)權(quán)協(xié)議范本子女撫養(yǎng)費用明細12篇
- 二手車交易協(xié)議范本2024年度版版B版
- 二零二五年度變壓器租賃與電力系統(tǒng)優(yōu)化設(shè)計協(xié)議3篇
- 二零二五年度仿古茶具展覽展示與推廣服務合同3篇
- 廣西桂林市2023-2024學年高二上學期期末考試物理試卷
- 財務指標與財務管理
- 2023-2024學年西安市高二數(shù)學第一學期期末考試卷附答案解析
- 部編版二年級下冊道德與法治第三單元《綠色小衛(wèi)士》全部教案
- 【京東倉庫出庫作業(yè)優(yōu)化設(shè)計13000字(論文)】
- 保安春節(jié)安全生產(chǎn)培訓
- 初一語文上冊基礎(chǔ)知識訓練及答案(5篇)
- 勞務合同樣本下載
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評定第三方符合性標志的通用要求
- GB/T 13663.2-2018給水用聚乙烯(PE)管道系統(tǒng)第2部分:管材
評論
0/150
提交評論