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

MPI環(huán)境下二維流動的并行計(jì)算

2013-10-15 08:10:56符棟良
化工裝備技術(shù) 2013年4期
關(guān)鍵詞:進(jìn)程

符棟良

(上海市特種設(shè)備監(jiān)督檢驗(yàn)技術(shù)研究院)

基于PC機(jī)群的并行計(jì)算是當(dāng)前國際上計(jì)算機(jī)科學(xué)與應(yīng)用領(lǐng)域中引人注目的課題之一,該領(lǐng)域的研究在我國現(xiàn)階段科研條件下有著很強(qiáng)的現(xiàn)實(shí)意義。在諸如預(yù)測模型的構(gòu)造和模擬、工程設(shè)計(jì)和自動化、能源勘探、醫(yī)學(xué)、軍事以及基礎(chǔ)理論研究等領(lǐng)域,都對計(jì)算提出了極高的具有挑戰(zhàn)性的要求,所以對并行計(jì)算有很迫切的需求。

1 并行計(jì)算環(huán)境

1.1 MPI并行環(huán)境介紹

本文采用的網(wǎng)絡(luò)并行環(huán)境是MPI(message passing interface),MPI是目前最重要的實(shí)現(xiàn)消息傳遞的并行編程環(huán)境之一,它具有移植性好、功能強(qiáng)大、效率高等多種優(yōu)點(diǎn)[1]。具體地講,MPI就是提供了并行庫。這樣,原來的串行編譯器能夠繼續(xù)使用,編程者只需要在原來的串行程序中加入對并行庫的調(diào)用,就可以實(shí)現(xiàn)并行程序設(shè)計(jì)。在MPI-1中共有128個調(diào)用接口,在MPI-2中有287個。應(yīng)該說MPI是比較龐大的,想完全掌握這么多的調(diào)用很困難。但是,從理論上說,MPI所有的通信功能可以用它的6個基本的調(diào)用來實(shí)現(xiàn),掌握了這6個調(diào)用,就可以實(shí)現(xiàn)所有的消息傳遞并行程序的功能。因此,下面介紹這6個最基本的調(diào)用[1]。

(1) MPI初始化

MPI_Init()

MPI_Init是MPI程序的第一個調(diào)用,它完成MPI程序所有的初始化工作,是所有MPI程序的第一條可執(zhí)行語句。

(2) MPI結(jié)束

MPI_Finalize()

MPI_Finalize是MPI程序的最后一個調(diào)用,它結(jié)束MPI程序的運(yùn)行,是MPI程序的最后一條可執(zhí)行語句。

(3)當(dāng)前進(jìn)程標(biāo)識

MPI_Comm_rank(comm,rank)

comm——該進(jìn)程所在的通信域

rank——調(diào)用進(jìn)程在comm中的標(biāo)識號

這一語句用來返回調(diào)用給定的通信域中的進(jìn)程標(biāo)識號。有了這一標(biāo)識號,不同的進(jìn)程就可以將自身和其它的進(jìn)程區(qū)別開來,從而實(shí)現(xiàn)各進(jìn)程的并行和協(xié)作。

(4)通信域包含的進(jìn)程數(shù)

MPI_Comm_size(comm,size)

comm——通信域

size——通信域comm內(nèi)包括的進(jìn)程數(shù)

這一調(diào)用返回給定的通信域中所包括的進(jìn)程的個數(shù),不同的進(jìn)程通過這一調(diào)用得知在給定的通信域中一共有多少個進(jìn)程在并行執(zhí)行。

(5) 消息發(fā)送

MPI_Send(buf,count,datatype,dest,tag,comm)

buf——發(fā)送緩沖區(qū)的起始地址

count——將發(fā)送的數(shù)據(jù)的個數(shù)

datatype——發(fā)送數(shù)據(jù)的數(shù)據(jù)類型

dest——目的進(jìn)程標(biāo)識號

tag——消息標(biāo)志

comm——通信域

MPI_Send將發(fā)送緩沖區(qū)中的count個datatype數(shù)據(jù)類型的數(shù)據(jù)發(fā)送到目的進(jìn)程,目的進(jìn)程在通信域中的標(biāo)識號是dest,本次發(fā)送的消息標(biāo)志是tag。使用這一標(biāo)志,就可以把本次發(fā)送的消息和本進(jìn)程向同一目的進(jìn)程發(fā)送的其它消息區(qū)別開來。

MPI_Send操作指定的發(fā)送緩沖區(qū)是由count個類型為datatype的連續(xù)數(shù)據(jù)空間組成,起始地址為buf。注意這里不是以字節(jié)計(jì)數(shù),而是以數(shù)據(jù)類型為單位指定消息的長度,這樣就獨(dú)立于具體的實(shí)現(xiàn)并且更接近于用戶的觀點(diǎn)。其中datatype數(shù)據(jù)類型可以是MPI的預(yù)定義類型,也可以是用戶自定義的類型。通過使用不同的數(shù)據(jù)類型調(diào)用MPI_Send,可以發(fā)送不同類型的數(shù)據(jù)。

(6) 消息接收

MPI_Recv(buf,count,datatype,source,tag,comm,status)

buf——接收緩沖區(qū)的起始地址

count——最多可接收的數(shù)據(jù)的個數(shù)

datatype——接收數(shù)據(jù)的數(shù)據(jù)類型

source——所接收的數(shù)據(jù)的來源,即發(fā)送數(shù)據(jù)的進(jìn)程標(biāo)識號

tag——消息標(biāo)識,與相應(yīng)的發(fā)送操作的標(biāo)示相匹配

comm——本進(jìn)程和發(fā)送進(jìn)程所在的通信域status——返回狀態(tài)

MPI_Recv從指定的進(jìn)程source接收消息,并且該消息的數(shù)據(jù)類型、消息標(biāo)識和本接收進(jìn)程指定的datatype、tag相一致,接收到的消息所包含的數(shù)據(jù)元素的個數(shù)最多不能超過count。

接收緩沖區(qū)是由count個類型為datatype的連續(xù)元素空間組成,由datatype指定其類型,起始地址為buf。接收到消息的長度必須小于或等于接收緩沖區(qū)的長度,這是因?yàn)槿绻邮盏降臄?shù)據(jù)過大,MPI沒有截斷,接收緩沖區(qū)會發(fā)生溢出錯誤,因此編程者要保證接收緩沖區(qū)的長度不小于發(fā)送數(shù)據(jù)的長度。如果一個短于接收緩沖區(qū)的消息到達(dá),那么只有相應(yīng)于這個消息的那些地址被修改。count可以是零,這種情況下消息的數(shù)據(jù)部分是空的。其中datatype數(shù)據(jù)類型可以是MPI的預(yù)定義類型,也可以是用戶自定義的類型。通過指定不同的數(shù)據(jù)類型調(diào)用MPI_Recv,可以接收不同類型的數(shù)據(jù)。

1.2 MPI并行平臺搭建介紹

在服務(wù)器和客戶機(jī)上都安裝軟件包MPICH.NT.1.2.0.4。安裝內(nèi)容包括:遠(yuǎn)程調(diào)用的程序、運(yùn)行時動態(tài)連接庫和MPI程序的啟動程序。

使用編譯器進(jìn)行并行程序編譯鏈接,在使用其編譯程序前,增加一個Fortran項(xiàng)目環(huán)境,點(diǎn)擊菜單Project→Settings…,進(jìn)行下面的操作。

(1) 在setting for中, 選擇Win32 debug。

①選擇Fortran標(biāo)簽:在Category一欄中選擇“External Procedures”; 在 “Argument Passing” 一欄中選擇 “C,By Reference”; 在 “String Length Argument”一欄中選擇 “After All Args”。

②選擇Link標(biāo)簽:在Category一欄中選擇“General”; 在 Object/library modules中 , 添 加ws2_32.lib、 mpichd.lib、 pmpichd.lib、 romiod.lib,各庫文件間用空格分開。

(2) 在setting for中, 選擇Win32 release。

①選擇Fortran標(biāo)簽:在Category一欄中選擇“External Procedures”; 在 “Argument Passing” 一欄中選擇 “C,By Reference”; 在 “String Length Argument”一欄中選擇 “After All Args”。

②選擇Link標(biāo)簽:在Category一欄中選擇“General”; 在 Object/library modules中 , 添 加ws2_32.lib、 mpich.lib、 pmpich.lib、 romio.lib, 各庫文件間用空格分開。

(3) 點(diǎn)擊菜單 File→Save Fortran Environment。

這樣就可以在以后程序設(shè)計(jì)時方便地使用這一編譯環(huán)境。

在每臺機(jī)器上都啟動了RemoteShellServer,為了減少以后的維護(hù),將這個服務(wù)設(shè)為自動。

用配置文件的方式在多臺機(jī)器上啟動,純文本配置文件的格式如下:

exe<可執(zhí)行文件的全路徑及名稱>[可選參數(shù)]

[hosts可執(zhí)行文件的全路徑及名稱]

<主機(jī)名2>#n2[可執(zhí)行文件的全路徑及名稱] <主機(jī)名3>#n3[可執(zhí)行文件的全路徑及名稱] ……

其中,n1、n2、n3表示在對應(yīng)機(jī)器上啟動的進(jìn)程數(shù),若主機(jī)后的 [可執(zhí)行文件的全路徑及名稱] 不填,則默認(rèn)使用exe那一行所指定的文件;若每臺主機(jī)都獨(dú)立地列出可執(zhí)行文件的全路徑及名稱,則exe那一行的內(nèi)容也可空白。

1.3 并行方案

本文在PC網(wǎng)絡(luò)中實(shí)現(xiàn)上述過程時采用了客戶機(jī)/服務(wù)器模式 (Client/Server Mode)[2]。 客戶機(jī)/服務(wù)器模式是網(wǎng)絡(luò)通信中使用的主要的相互作用模型。可以這樣來說,服務(wù)器是提供服務(wù)的軟件或進(jìn)程,而客戶機(jī)則是接受服務(wù)的軟件或進(jìn)程。

根據(jù)客戶機(jī)/服務(wù)器模型的特點(diǎn),我們可以安排每個客戶機(jī)進(jìn)程 (一臺PC機(jī)運(yùn)行1到2個客戶機(jī)進(jìn)程)負(fù)責(zé)一個子區(qū)域的計(jì)算。客戶機(jī)在迭代若干步后,首先要把一些相關(guān)的交界面信息傳給服務(wù)器進(jìn)程,然后服務(wù)器會根據(jù)Neumann條件得到新一輪的交界面信息,最后服務(wù)器會把這些新得到的信息傳給相關(guān)的客戶機(jī)。

2 具體算例[3-6]

算例一:方形空腔二維層流驅(qū)動流。

(1) 物理模型

圖1所示為帶移動頂蓋的方形空腔二維層流驅(qū)動流。雷諾數(shù)Reynolds分別取100和1000。

圖1 方形空腔二維層流驅(qū)動流

(2) 區(qū)域劃分

將方形空腔計(jì)算區(qū)域平均分為上下兩塊,其生成的網(wǎng)格圖如圖2所示。

圖2 方形空腔網(wǎng)格圖

(3) 計(jì)算結(jié)果

圖3、圖4所示為采用D-N分區(qū)計(jì)算所得的方形空腔內(nèi)二維層流驅(qū)動流的流線分布圖。

圖3 方形空腔網(wǎng)格圖 (Re=100)

算例二:90°彎管內(nèi)二維流動問題。

(1) 物理模型

圖5為90°彎管示意圖。入口速度取拋物線分布, Reynolds數(shù)取790,出口條件按局部單向化處理。

圖4 方形空腔網(wǎng)格圖 (Re=1000)

圖 5 90°彎管

(2) 區(qū)域劃分

將整個計(jì)算區(qū)域分成3塊。其中,入口段部分網(wǎng)格大小為19×7,中間部分網(wǎng)格大小為19×10,出口段部分網(wǎng)格大小為19×7。90°彎管網(wǎng)格圖如圖6所示。

圖6 90°彎管網(wǎng)格圖

(3) 計(jì)算結(jié)果

圖7為90°彎管內(nèi)速度矢量圖。

表1和表2對比了單機(jī)求解和多機(jī)并行求解的效率。

圖7 90°彎管內(nèi)速度矢量圖

表1 方形空腔內(nèi)分區(qū)并行計(jì)算的并行效率

表2 90°彎管內(nèi)分區(qū)并行計(jì)算的并行效率

以上兩個算例是使用區(qū)域分解算法對二維流動問題進(jìn)行數(shù)值模擬,從中我們也可以驗(yàn)證該算法具有很好的物理真實(shí)性和良好的區(qū)域耦合性,證明用D-N算法來實(shí)現(xiàn)流場的分區(qū)數(shù)值計(jì)算是可行的。可以看出,使用區(qū)域分解法在MPI環(huán)境下并行求解二維流動問題,有較高的加速比和較好的并行效率。其計(jì)算時間也遠(yuǎn)低于同規(guī)模問題的單機(jī)串行計(jì)算時間。說明使用區(qū)域分解法在基于MPI網(wǎng)絡(luò)的個人微機(jī)并行環(huán)境下,對求解流動問題有著很好的效果和前景。

[1] 郁志輝.高性能計(jì)算并行編程技術(shù) [M] .北京:清華大學(xué)出版社,2001.

[2] 陸霄露.基于PC網(wǎng)絡(luò)求解復(fù)雜三維流動的分區(qū)并行方法 [D] .上海:上海交通大學(xué),2003.

[3] 陶文銓.計(jì)算傳熱學(xué)的近代進(jìn)展 [M] .北京:科學(xué)出版社,2000.

[4] 周力行.湍流氣粒兩相流動和燃燒的理論與數(shù)值模擬[M] .北京:科學(xué)出版社,1994.

[5] 蒲砢.關(guān)于氣固兩相流數(shù)值計(jì)算模型的探討 [J] .重慶建筑高等專科學(xué)校學(xué)報,2000,10(4):1-4.

[6] Patankar SV.郭寬良譯.傳熱和流體流動的數(shù)值方法[M] .北京:科學(xué)出版社,1984.

猜你喜歡
進(jìn)程
債券市場對外開放的進(jìn)程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進(jìn)程中的國際收支統(tǒng)計(jì)
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進(jìn)程
社會進(jìn)程中的新聞學(xué)探尋
我國高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
講效率 結(jié)束進(jìn)程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進(jìn)程中出現(xiàn)的新矛盾和新問題
俄羅斯現(xiàn)代化進(jìn)程的阻礙
論文萊的民族獨(dú)立進(jìn)程
主站蜘蛛池模板: 中文无码精品A∨在线观看不卡 | 日韩毛片在线播放| 波多野结衣亚洲一区| 找国产毛片看| 亚洲午夜片| 99热最新网址| 亚洲视频免| 亚洲一本大道在线| 亚洲免费三区| 免费网站成人亚洲| 国产欧美日韩精品综合在线| 99er这里只有精品| 97在线公开视频| 亚洲综合色婷婷中文字幕| 日韩在线永久免费播放| 国产三级毛片| 九九久久99精品| 欧美色视频在线| 亚洲一区国色天香| 毛片基地美国正在播放亚洲 | 无码免费的亚洲视频| 久久精品嫩草研究院| 亚洲成AV人手机在线观看网站| 日韩精品亚洲精品第一页| 久久黄色影院| 日韩欧美91| 午夜性爽视频男人的天堂| 免费国产无遮挡又黄又爽| 精品一區二區久久久久久久網站 | 国产99免费视频| 91精选国产大片| 精品国产中文一级毛片在线看| 日韩精品毛片| 精品一区二区三区波多野结衣 | 激情综合网址| 91青青草视频在线观看的| 日本成人不卡视频| 国产大片黄在线观看| 毛片久久网站小视频| 午夜a视频| 欧美性猛交一区二区三区| 亚洲精品中文字幕午夜| lhav亚洲精品| av尤物免费在线观看| 国产sm重味一区二区三区| 麻豆国产在线观看一区二区| 国产精品成人久久| 国产亚洲精久久久久久久91| 色成人亚洲| 茄子视频毛片免费观看| 日本道综合一本久久久88| 亚洲无码37.| 国产麻豆福利av在线播放| 青青热久免费精品视频6| 久久午夜夜伦鲁鲁片不卡| 中文字幕无码制服中字| 无码电影在线观看| 岛国精品一区免费视频在线观看 | 国产不卡一级毛片视频| 女人毛片a级大学毛片免费| 中文字幕波多野不卡一区| 久久精品aⅴ无码中文字幕| 亚洲香蕉伊综合在人在线| 一级香蕉视频在线观看| 好吊妞欧美视频免费| 在线看片中文字幕| WWW丫丫国产成人精品| 自慰高潮喷白浆在线观看| 日本一区二区三区精品国产| 日韩毛片在线播放| 囯产av无码片毛片一级| 91欧美在线| 高清国产va日韩亚洲免费午夜电影| 蝴蝶伊人久久中文娱乐网| 国产成人av一区二区三区| 伊人精品视频免费在线| 99青青青精品视频在线| 99精品在线看| av手机版在线播放| 尤物亚洲最大AV无码网站| 国产成人亚洲综合a∨婷婷| 手机精品视频在线观看免费|