999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

組合CC++并行編程并行塊研究

2012-10-20 09:49:36邕江大學(xué)人文學(xué)院陳積常
河南科技 2012年6期
關(guān)鍵詞:程序規(guī)則語(yǔ)言

邕江大學(xué) 人文學(xué)院 陳積常

組合CC++并行編程并行塊研究

邕江大學(xué) 人文學(xué)院 陳積常

在CC++語(yǔ)言中,并行控制線程的創(chuàng)建大都使用并行塊機(jī)制來(lái)完成。并行控制塊(par)的結(jié)構(gòu)與C語(yǔ)言或C++語(yǔ)言中的復(fù)合聲明比較相似,區(qū)別僅在于結(jié)構(gòu)之前所用的是關(guān)鍵字“par”,而非其他串行語(yǔ)言中的關(guān)鍵字。

一、舉例說(shuō)明

1.并行塊結(jié)構(gòu)說(shuō)明。關(guān)鍵代碼如下所示:

除了某些特殊情況外,并行塊里面的聲明都應(yīng)是CC++的合法聲明。par不同于普通C++語(yǔ)言的模塊,在par里各種聲明的執(zhí)行順序都是不固定的,塊里的各個(gè)聲明語(yǔ)句都是以交錯(cuò)的方式或者并行的方式執(zhí)行的。

2.并行塊控制語(yǔ)句。下文是1個(gè)并行塊的控制程序代碼:

可以看到,par之中有2個(gè)獨(dú)立的控制線程:第1個(gè)語(yǔ)句為“a=2;”,第2個(gè)語(yǔ)句為“b=c+3;”,而“d=b+1;”這個(gè)語(yǔ)句必須在“a= 2;”和“b=c+3;”語(yǔ)句運(yùn)行完畢之后方可運(yùn)行。

二、結(jié)構(gòu)

并行塊的重要特征是自身結(jié)構(gòu)提供了并行代碼,一個(gè)被定義的并行塊只有在并行體里面的所有語(yǔ)句運(yùn)行結(jié)束之后才能終止。因此,終止1個(gè)并行塊,意味著塊內(nèi)所有線程都已運(yùn)行完畢。關(guān)鍵代碼如下:

賦值于a,b,c的各個(gè)線程在不同的時(shí)刻將以不同的順序來(lái)完成其賦值工作,即在時(shí)刻T1可能是a先完成,接著到b,最后到c;在時(shí)刻T2有可能是b先完成,然后到a,最后到c。但是,不管以怎樣的順序來(lái)完成,整個(gè)并行塊只有在這3個(gè)線程完成之后方能結(jié)束,即只有當(dāng)3個(gè)并行塊完成之后,才能執(zhí)行“sum= a+b+c”這個(gè)語(yǔ)句。

三、數(shù)據(jù)共享

CC++語(yǔ)言允許出現(xiàn)數(shù)據(jù)共享情況,只要通過(guò)以下一條規(guī)則編寫(xiě)程序便可,規(guī)則為:如果一個(gè)變量被并行塊內(nèi)一個(gè)線程修改了,其后線程應(yīng)不再使用這個(gè)變量。本文,筆者通過(guò)下面的例子來(lái)解釋其規(guī)則。

此并行塊已經(jīng)違反了變量的共享規(guī)則。變量x在并行塊內(nèi)被修改了2次,雖然這些代碼在編譯時(shí)可能未出現(xiàn)錯(cuò)誤,甚至可以正確的運(yùn)行,但是這種情況是極度不安全的,因?yàn)榈阶詈螅⑿袎K的數(shù)值是不固定的,它可能是1也可能是2,或者兩者都不是。如果變量以這種方式被共享的話,編寫(xiě)出來(lái)的程序?qū)⑹清e(cuò)誤的。在這里,既不允許其他線程再修改已被修改過(guò)的變量,也不允許其他線程再引用已被修改過(guò)的變量,如下例所示程序:

在該例子中,第1個(gè)語(yǔ)句給s賦值,第2個(gè)語(yǔ)句又引用了s。雖然在運(yùn)行時(shí),未必會(huì)出現(xiàn)錯(cuò)誤的結(jié)果,但這是一個(gè)錯(cuò)誤的程序,并行塊中的n的值是混亂的(或者s也可能出現(xiàn)此情況)。實(shí)際編程中要避免使用該類程序。

四、嵌套

像普通串行設(shè)計(jì)語(yǔ)言一樣,在并行設(shè)計(jì)語(yǔ)言CC++之中也存在嵌套行為。關(guān)鍵代碼如下所示:

在上例中,函數(shù)trial()被執(zhí)行并將結(jié)果賦予result1之后,generate_stats()才開(kāi)始執(zhí)行。

五、局限性

1.并行塊中線程的運(yùn)行狀態(tài)是交錯(cuò)的、任意的,它無(wú)法確保特定的線程指令在之后多久被執(zhí)行。

2.不允許在并行塊的范圍之內(nèi)對(duì)變量進(jìn)行聲明,這是與并行塊的共享變量規(guī)則相一致的,然而在嵌套中定義則是允許的。

3.跳入、跳出(goto into ,out of)并行塊或者在并行塊內(nèi)的各個(gè)語(yǔ)句間相互跳轉(zhuǎn)都是不允許的。但是no break,goto,continue,return并行快是可用的。

六、并行塊的編程實(shí)例

利用 ∏/4=1-1/3+1/5-1/7…公式求∏的近似值,直到最后一項(xiàng)的絕對(duì)值小于0.000 01為止。關(guān)鍵代碼如下:

該程序主要通過(guò)并行塊來(lái)實(shí)現(xiàn)對(duì)∏的求解。并行塊中“pi= pi+t”、“n= n+2”、“s=-s”3個(gè)語(yǔ)句是并行執(zhí)行的,這3個(gè)語(yǔ)句之間互不關(guān)聯(lián),每個(gè)語(yǔ)句都被創(chuàng)建為一個(gè)獨(dú)立的線程,線程之間的運(yùn)行是并行的。并行塊中的線程是并行的。只有當(dāng)其并行塊內(nèi)所有的線程運(yùn)行結(jié)束時(shí),整個(gè)并行塊運(yùn)行才終止。

猜你喜歡
程序規(guī)則語(yǔ)言
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
試論我國(guó)未決羈押程序的立法完善
讓語(yǔ)言描寫(xiě)搖曳多姿
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
主站蜘蛛池模板: 波多野结衣无码中文字幕在线观看一区二区 | 日本人妻一区二区三区不卡影院 | 自偷自拍三级全三级视频| 亚洲天堂精品视频| 无码福利日韩神码福利片| 欧美另类第一页| 男女精品视频| 亚洲最新地址| 国产超碰一区二区三区| 无码福利日韩神码福利片| 91美女视频在线观看| 日本不卡视频在线| 日韩精品成人在线| 97久久免费视频| 亚洲一区二区成人| 国产99免费视频| 香蕉久久国产精品免| 欧美有码在线观看| 国产h视频在线观看视频| 亚洲成a人片| 无码AV高清毛片中国一级毛片| 久久精品人人做人人爽97| 波多野结衣一区二区三区AV| 国产黑丝视频在线观看| 精品视频第一页| 日韩成人在线视频| 欧美全免费aaaaaa特黄在线| 妇女自拍偷自拍亚洲精品| 免费可以看的无遮挡av无码| 久久久久青草大香线综合精品 | 亚洲国产成人无码AV在线影院L| 国产成人免费观看在线视频| 国产在线视频欧美亚综合| 免费在线一区| 亚洲一级毛片| 亚洲婷婷六月| 欧美日韩国产精品综合 | 亚洲国产黄色| 欧美视频在线不卡| 国产成人三级在线观看视频| 97成人在线视频| 刘亦菲一区二区在线观看| 中文字幕资源站| 久久99国产视频| 日韩人妻少妇一区二区| 日韩欧美色综合| 四虎永久在线视频| 国产精品一区在线麻豆| 亚洲天堂在线视频| 欧美中出一区二区| 久久国产精品影院| 成人亚洲国产| 久久夜色撩人精品国产| 久久久久无码精品国产免费| 91探花在线观看国产最新| 高清免费毛片| 91在线国内在线播放老师| 国产成人AV综合久久| 久久久久亚洲av成人网人人软件| 久久婷婷五月综合97色| 青草视频免费在线观看| 91精品啪在线观看国产91九色| 波多野结衣中文字幕一区二区| 全部免费特黄特色大片视频| 国产啪在线| 免费人成网站在线观看欧美| 日韩福利视频导航| 日韩精品高清自在线| 五月天在线网站| 一级全黄毛片| 亚洲无码91视频| 精品無碼一區在線觀看 | 精品国产免费人成在线观看| 亚洲av无码人妻| 亚洲欧洲AV一区二区三区| 欧美亚洲日韩中文| 亚洲av色吊丝无码| 91在线高清视频| 久久中文电影| 999精品视频在线| 野花国产精品入口| 亚洲伊人天堂|