OpenMP程序設(shè)計(jì)

OpenMP程序設(shè)計(jì)

ID:37849536

大小:197.00 KB

頁數(shù):13頁

時間:2019-06-01

OpenMP程序設(shè)計(jì)_第1頁
OpenMP程序設(shè)計(jì)_第2頁
OpenMP程序設(shè)計(jì)_第3頁
OpenMP程序設(shè)計(jì)_第4頁
OpenMP程序設(shè)計(jì)_第5頁
資源描述:

《OpenMP程序設(shè)計(jì)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、OpenMP程序設(shè)計(jì)?什么是OpenMP應(yīng)用編程接口API(ApplicationProgrammingInterface)由三個基本API部分(編譯指令、運(yùn)行部分和環(huán)境變量)構(gòu)成是C/C++和Fortan等的應(yīng)用編程接口?OpenMP使用Fork-Join并行執(zhí)行模型編譯制導(dǎo)OpenMP的#pragma語句的格式為#pragmaompdirective_name…#pragmaomp制導(dǎo)指令前綴。對所有的OpenMP語句都需要這樣的前綴。directive-nameOpenMP制導(dǎo)指令。在制導(dǎo)

2、指令前綴和子句之間必須有一個正確的OpenMP制導(dǎo)指令。并行域結(jié)構(gòu)?并行域中的代碼被所有的線程執(zhí)行?具體格式#pragmaompparallel[clause[[,]clause]…]newline?并行域中的代碼被所有的線程執(zhí)行?具體格式#pragmaompparallel[clause[[,]clause]…]newline共享任務(wù)結(jié)構(gòu)?共享任務(wù)結(jié)構(gòu)將它所包含的代碼劃分給線程組的各成員來執(zhí)行并行for循環(huán)并行sections串行執(zhí)行for編譯制導(dǎo)語句?for語句指定緊隨它的循環(huán)語句必須由線程

3、組并行執(zhí)行;?語句格式#pragmaompfor[clause[[,]clause]…]newlineSections編譯制導(dǎo)語句?sections編譯制導(dǎo)語句指定內(nèi)部的代碼被劃分給線程組中的各線程?不同的section由不同的線程執(zhí)行?Section語句格式:#pragmaompsections[clause[[,]clause]…]newline{[#pragmaompsectionnewline]…[#pragmaompsectionnewline]…}single編譯制導(dǎo)語句?singl

4、e編譯制導(dǎo)語句指定內(nèi)部代碼只有線程組中的一個線程執(zhí)行。?線程組中沒有執(zhí)行single語句的線程會一直等待代碼塊的結(jié)束,使用nowait子句除外?語句格式:#pragmaompsingle[clause[[,]clause]…]newline組合的并行共享任務(wù)結(jié)構(gòu)parallelfor編譯制導(dǎo)語句?Parallelfor編譯制導(dǎo)語句表明一個并行域包含一個獨(dú)立的for語句?語句格式?#pragmaompparallelfor[clause…]newlineparallelsections編譯制導(dǎo)語句

5、?parallelsections編譯制導(dǎo)語句表明一個并行域包含單獨(dú)的一個sections語句?語句格式#pragmaompparallelsections[clause…]newline下面對以上編譯制導(dǎo)語句的類型舉例:1、for編譯制導(dǎo)語句補(bǔ)充Schedule(type[,chunk])?schedule子句描述如何將循環(huán)的迭代劃分給線程組中的線程?如果沒有指定chunk大小,迭代會盡可能的平均分配給每個線程?type為static,循環(huán)被分成大小為chunk的塊,靜態(tài)分配給線程?type為

6、dynamic,循環(huán)被動態(tài)劃分為大小為chunk的塊,動態(tài)分配給線程串行執(zhí)行的程序塊為:for(i=0;;i++)matct();for(j=0;;j++)match();并行的執(zhí)行為:#pragmaompparallel//由并行組里面的線程組并行執(zhí)行{#pragmaompforschedule(static,100)//schedule子句可以省{for(i=0;;i++)match();}#pragmaompforschedule(static,100)//schedule子句可以省{fo

7、r(j=0;;j++)match();}}或者#pragmaompparallelforprivate(i)//parallelfor后面只能跟一個for循環(huán)for(i=0;;i++)//private說明里面的變量i是各自線程私有的match();2、Sections編譯制導(dǎo)語句串行執(zhí)行的程序塊為:for(i=0;i<10000;i++)matct();并行的執(zhí)行為:#pragmaompparallelprivate(i){#pragmaompsections//代碼被劃分給線程組中的各線程{

8、#pragmaompsectionfor(i=0;i<5000;i++)match();#pragmaompsectionfor(i=5000;i<10000;i++)match();}3、single編譯制導(dǎo)語句串行執(zhí)行的程序塊為:for(i=0;;i++)matct();并行的執(zhí)行為:#pragmaompparallel{#pragmaompsingle//代碼只有線程組中的一個線程執(zhí)行。{for(i=0;;i++)match();}}4、實(shí)現(xiàn)線程同步#pragmaompparallel{#

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

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

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