在Linux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為 1 單元的球體體積_第1頁
在Linux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為 1 單元的球體體積_第2頁
在Linux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為 1 單元的球體體積_第3頁
在Linux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為 1 單元的球體體積_第4頁
在Linux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為 1 單元的球體體積_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計算機(jī)科學(xué)與技術(shù)系課程名稱.并行計算及編程實驗項目:專業(yè)班級:姓名:學(xué)號:實驗時間:批閱時間:指導(dǎo)教師:成績:7蘭州交通大學(xué)《并行計算及編程》課程實驗報告實驗名稱:課內(nèi)綜合實驗1一、實驗?zāi)康脑贚inux或Windows環(huán)境下配置OpenMP開發(fā)運(yùn)行環(huán)境,并利用蒙特卡羅算法計算半徑為1單元的球體體積。、實驗內(nèi)容.驗證所配置OpenMP并行環(huán)境的正確性;.分別用串行程序和并行程序?qū)崿F(xiàn)以上問題的求解;.比較并行和串行程序的執(zhí)行時間,并行計算加速比;.提交電子版詳細(xì)實驗報告。三、實驗環(huán)境Windows10,下載VisualStudio2019四、實驗過程(包括程序設(shè)計說明,實驗步驟,經(jīng)調(diào)試后正確的源程序,程序運(yùn)行結(jié)果)①實驗步驟:下載VisualStudio2019圖1用helloworld程序驗證在SolutionExplorer(解決方案資源管理器)中對項目名右鍵,選擇屬性,更改/型目品性軍雙高級說試VC+4EMJ/型目品性軍雙高級說試VC+4EMJC/C++胃現(xiàn)說出預(yù)處理器匕瑪生成h由白預(yù)專浮頭造出文件瀏覽拮總高苑斷有選回畬令行>血室L清單工艮r(nóng)瀏揖晅息P生成李件F自定義生筋鬻b甘迎ArfV正愛(Q二jgStXDebug)M?用囪古擴(kuò)展符合眼式杵W匚Mjt現(xiàn)為內(nèi)直類型過制For也如足■!!中的豈那住榔會引用的代碼和款昌強(qiáng)到類型轉(zhuǎn)換期則后圍國Mii找汜后M否餐!(/ptirmi*汨??]是(/Zc;wchar_t)是(/Zc:forScjope)是(/Zciiinline)[口附附P支持是(/openmipjJ+語音屣啟用匚+十摸嘏關(guān)窗與裝用語高獷展取消獨白用盾音丁員.g"平臺伊):iSSt](Wln32)配餐后理堯鞋定取消圖2進(jìn)行配置用MkrosoFtViswolStudio加1*,fOLId:fiotnthiGad=O^lldlarld!freonthread=3JclldTflrld;freonthread=l-Je:laWorld!frcaithread=2Hello而rid:fromthread=11HelloWorld!frccuthread=5■11。World!fronithread=8加LidWorld!frocathread=7^L.oWarId!fictnthread=10JelloWorld!franthread=4^ellafforld!franthr&ad=9■Je:laTarld:frccnthread=6":\LserZ^tt3t\aQLirce\rBpM\Prciject1\DdMig\Praject1exeLilt"34Z助已退即.代理為Q.要花調(diào)試傳上時自承美用控制臺?清啟用“工2->*舐項”->“調(diào)試”->“調(diào)試件止時H動美團(tuán)掙刷價捺任意德美閉此窗U,.圖3配置成功后輸出答案②環(huán)境配置好后,利用蒙特卡羅算法計算半徑為1單元的球體體積。/用串行程序?qū)崿F(xiàn):經(jīng)過調(diào)試后的正確程序:#include<iostream>#include<stdlib.h>#include<time.h>usingnamespacestd;intmain(){longintmax=10000000;longinti,count=0;doublex,y,z,bulk,start_time,end_time;starttime=clock();

time_tt;srand((unsigned)time(&t));/用數(shù)產(chǎn)生一個以當(dāng)前時間開始的隨機(jī)種子for(i=0;i<max;i++){x=rand();〃生成0~RAND_MAX之間的一個隨機(jī)數(shù),其中RAND_MAX是stdlib.h中定義的一個整數(shù),它與系統(tǒng)有關(guān)。/*RAND_MAX是VC中stdlib.h中宏定義的一個字符常量:#defineRAND_MAX0x7FFF其值最小為32767,最大為2147483647通常在產(chǎn)生隨機(jī)小數(shù)時可以使用RAND_MAX。*/x=x/32767;y=rand();y=y/32767;z=rand();z=z/32767;if((x*x+y*y+z*z)<=1)count++;}bulk=8*(double(count)/max);end_time=clock();cout<<"球體的體積為"<<bulk<<endl;cout<<"運(yùn)算時間為"<<(end_time-start_time)<<endl;return0;}工■了,dU小Jt」/1口胃2盟丸也小中;工力沖轄段.;后曜,*R^I'.HU^VCil'iEnJlItL比定區(qū)的I中宇的第Rix:謝第:ruddJEx:謝第:rudd球俄的體積為運(yùn)算時間為209C:\C3€H3Um班\3outc€\reg3TPrcject2\Debug\PH0ject£€Ke(進(jìn)程16796)己退出.代出為0.要在調(diào)成停止時自動.矢田控制臺.請啟用“工」0‘選項"7皿調(diào)誠”->“調(diào)就停止時自動美用控制臺",接任意鎮(zhèn)美間此囪11一..圖4串行方法的結(jié)果結(jié)果:球體的體積為4.18782;運(yùn)算時間為2209ms/用并行程序?qū)崿F(xiàn)程序設(shè)計說明:需要建立:#pragmaompparallel語句告訴編譯器下面的語句塊是一個并行塊,需要并行執(zhí)行(同樣語句會執(zhí)行多次)。用循環(huán)分割:利用for語句和歸并語句對程序進(jìn)行并行化。#include<stdlib.h>#include<time.h>#include<stdio.h>intmain(){longlongmax=10000000;longlongi,count=0;doublex,y,z,bulk,start_time,end_time;start_time=clock();time_tt;srand((unsigned)time(&t));//函數(shù)產(chǎn)生一個以當(dāng)前時間開始的隨機(jī)種子#pragmaompparallelforprivate(x,y,z)reduction(+:count)for(i=0;i<max;i++){x=rand();x=x/32767;y=rand();y=y/32767;z=rand();z=z/32767;if((x*x+y*y+z*z)<=1)count++;}bulk=8*((double)(count)/max);end_time=clock();printf("球體的體積為%0.8f\n",bulk);printf("運(yùn)算時間為%0母s\n",(end_time-start_time)/1000);return0;}

球體的體枳為4一1的12。皿運(yùn)球體的體枳為4一1的12。皿運(yùn)葬時制為a1a9Moms要在調(diào)試停11:時自動美用掙制行,清木用“「JT-》“選啞R-》“調(diào)試”->“調(diào)成停止時自動關(guān)閉控制臺“.接任點揖美用此窗11"皿用加#rf”juiiii外;“/萱平牛.一個Li訐*的herrfAl'ALlfrlFdE■Luluit'-iiie.h--IMh)?-?DIUMIm.==bHHWHLac|Im.drc-suit-Q;£■yZ|LfjLL±ruI.L^taiKiiid_LL*.fiiri.TUK-■ElMiO:iuk1(HM/32JUT:itndQ.y,3:所.X-EriWt-b,3SW:if(f3+r■ECUTtf皿”-3*>:(k<^L?>levui:>怪iJm■(LKkO;酊J1T「自律算障記.的1r圖5并行方法的結(jié)果球體的體積為4.18812000運(yùn)算時間為2.16900000s=2169ms③并行計算加速比加速比的含義對科學(xué)研究者和工程實用者可能有所不同。研究者們使用絕對加速比的定義:對于給定的問題,加速比等于最佳串行算法所用的時間除以同一問題的并行算法所用的時間。而工程中使用相對加速比的定義對于給定的問題,加速比等于同一個算法在單處理器上運(yùn)行的時間除以在多處理器上的運(yùn)行時間。S=2209ms/2169ms=1.0184416五、出現(xiàn)的問題及解決方法VS與VC的區(qū)別:VS(virtualstudio)是微軟開發(fā)的一個集成工具,可以開發(fā)C++、C#、HTML、VB等。VC(virtualc++)是專門開發(fā)C++的工具。當(dāng)你進(jìn)去VS的時候,會提示你選擇開發(fā)環(huán)境,如果你選擇C++,選擇的就是VC編程平臺。我之前使用的是vc6.0版本較老,這兩個可以同時使用,只需所在目錄不同就好。OpenMP編程實例(蒙特卡羅算法)用了clock()函數(shù)。clock()函數(shù)在頭文件#inc

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論