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

C/S模式并行計算架構設計及其實現方法

2013-10-25 05:53:22劉赟王永貴
哈爾濱工程大學學報 2013年7期
關鍵詞:程序方法系統

劉赟,王永貴

(中國航天科工運載技術研究院指揮自動化研發與應用中心,北京102308)

并行計算是當今計算機研究領域的前沿技術之一,但相關研究主要集中在復雜計算程序之間的交互處理、計算模型研究等方面,對工程實踐中面臨的資源有限和計算方法、計算類型各異等實際問題關注較少[1-10].本文利用現有網絡和硬件設備,通過合理的軟件架構設計,提升了并行計算性能,實現并行計算系統軟硬件的動態重組和擴充[11-12].

1 并行計算架構設計

傳統的計算軟件一般為串行化工作模式,采用一對一的傳輸應答策略,同一時段只能執行一個工作流程,執行效率低下,系統資源難以得到充分利用.

從軟件來看,隨著計算機技術的飛速發展,對軟件功能的需求趨于多樣化和復雜化,對軟件的性能要求也更高.為滿足不斷變化和擴展的需要,體系化設計的思路在軟件設計中得到越來越廣泛的應用,軟件模塊劃分更加精細化,即單一模塊實現單一功能,模塊內部高耦合,模塊之間松耦合,以適應軟件系統后續的集成與擴展.

從硬件來看,當今計算機硬件設備及其性能以摩爾定律的速度更新換代,導致現有硬件資源很快面臨淘汰,帶來了極大的浪費.因此,本文將充分利用已有硬件資源,并有效提升軟件性能,進而構建一套高效實用的計算系統.

為充分利用現有硬件資源,實現并行計算任務的動態分配、快速計算,本文采用3層分布式架構模型搭建并行計算系統.

1.1 機群系統

機群是一組獨立的計算機(節點)的集合體,節點間通過高性能網絡連接,各節點可以作為單一的計算資源供交互式用戶使用,還可以協同工作并表現為一個單一的、集中的計算資源供并行計算使用.機群是一種造價低廉、易于構建并且具有良好可擴展性的并行體系結構[13].

因此,采用上述搭建機群系統的策略,實驗室中性能各異的計算機均可納入機群系統.

1.2 并行計算系統

并行計算系統組成見圖1,其中:

1)設置服務器端,用于接收多個客戶端發來的不同計算任務申請,并調配現有可用的計算節點給客戶端;

2)設置客戶端,負責處理本次計算任務的輸入輸出數據收發處理,與各個計算節點上的節點監控模塊進行通信;

3)設置節點監控模塊,監測本節點上運行的計算程序的執行情況;

4)計算程序,負責具體計算任務的執行.

圖1 并行計算系統架構組成Fig.1 Parallel com puting system architecture

1.3 基于工作流并發執行的作業處理

通過C/S模式(服務器端/客戶端模式)異步網絡連接技術,采用多對一傳輸應答機制,同時接收處理多個客戶作業需求.網絡通信工作流程見圖2.

圖2 C/S模式異步網絡通信流程Fig.2 Asynchronous network communication process based on Client/Server mode

1.4 計算資源動態分配

工程實踐中面臨大量具有輸入輸出少、消耗內存大、運算量大、運算過程無數據交互需求等特點的計算任務.針對此類計算任務,可將其封裝為單一計算線程的可執行程序,并預先布置在所有計算節點上;在各節點設置節點監控模塊,采用進程動態分配技術,并行調用多個計算程序工作.

具體執行步驟為:

1)客戶端通過MPICH并行計算命令遠程調用參加本次計算任務的計算節點上的節點監控模塊;

2)節點監控模塊實時讀取節點CPU處理器的處理核心數量,按CPU核心數量啟動對應數量的計算程序并行執行;實時監控當前節點上所有計算程序的運行狀態;

3)節點監控模塊通過TCP/IP網絡通信協議將當前節點的計算狀態返回給客戶端;

4)客戶端負責收集齊參加本次計算任務的所有節點的狀態返回值后,對計算結果進行統計分析;

5)客戶端將本次計算任務的結果上報給服務器端.

綜上可知,假設1次計算任務有X個計算節點參與,每個計算節點的CPU核心數量為Y,那么同時可以有XY個計算程序并行執行,是單線程執行效率的XY倍.本設計方案在作者承擔的某重點項目中得到了實際應用,并取得了良好效果.

1.5 MPICH并行環境

本文采用開源工具MPICH1.4.1p1來構建MPICH并行環境,具體方法為:

1)在所有計算節點和客戶端安裝MPICH1.4.1p1,并將安裝路徑C:Program FilesMPICH2in加入系統環境變量path;

2)為所有計算節點和客戶端設置統一的管理員賬戶和密碼(例如,Administrator/pwd),實現在客戶端統一調度網絡內所有節點上的并行計算程序的功能;

3)利用MPICH的注冊工具wmpiregister.exe注冊管理員賬戶,或采用命令行方式“mpiexec–register”注冊管理員賬戶;

4)至此,可以實現并行計算程序在客戶端的遠程調用.例如,在客戶端執行如下命令:

mpiexec-hosts 2 192.168.0.1 192.168.0.2 d:mpitest est.exe

即可在192.168.0.1、192.168.0.2這2個節點上分別執行程序test.exe.

2 并行計算系統實現方法

本文結合工程實踐給出VS.Net 2010開發環境下的C#代碼示例.

2.1 服務器端與客戶端異步TCP/IP實現技術

1)TPC/IP異步通信.

TPC/IP在同步方式下接收、發送數據以及監聽客戶端連接時,在操作沒有完成之前會一直處于阻塞狀態.對于那些完成時間較長的任務,例如本文所述節點計算程序運行時間較長的情況,使用同步操作將出現阻塞,導致無法處理下一個客戶端的計算任務請求.采用異步操作技術能夠較好地解決這一問題.異步操作最大的優點是可以在一個操作沒有完成之前進行其他操作.Net框架提供了一種名為Async Callback(異步回調)的委托,該委托用于引用異步操作完成時調用的方法[14-15].

2)服務器端實現技術.

使用Tcp Listener類提供的 Begin Accept Tcp Client方法開始接收新的客戶端連接請求.利用此方法,系統會自動利用線程池創建需要的線程,并在操作完成時利用異步回調機制調用提供給它的方法(例如,用戶定義的 Accept Client Callback函數),同時返回相應的狀態參數,例如:

Async Callback callback = new Async Callback(Accept Client Callback);

tcplistener.Begin Accept Tcp Client(callback,listener);

在回調函數中,還必須調用End Accept Tcp Client方法完成客戶端連接:

void Accept Client Callback(IAsync Resultar)

{//回調代碼

...

TcpListener my Listener= (Tcp Listener)ar.AsyncState;

Tcp Client client=my Listener.End Accept Tcp Client(ar);

...

}

程序執行End Accept Tcp Client方法后,會自動完成客戶端連接請求,并返回包含底層套接字的Tcp Client對象,從而實現主程序與客戶端的通信.

3)客戶端實現技術.

利用Tcp Client類的Begin Connect方法,通過異步方式向遠程服務器端發出連接請求,例如:

Async Callback demo Callback=new Async Callback(Demo Callback);

client.Begin Connect(服務器 IP,服務器端口號,demo Callback,client);

...

void Demo Callback(IAsync Resultar)

{

...

client=(Tcp Client)ar.Async State;

client.End Connect(ar);

...

}

在自定義的Demo Callback中,通過獲取的狀態信息得到新的Tcp Client對象,并調用End Connect結束連接請求.

4)發送數據處理技術.

在客戶端已與服務器端建立連接的情況下,可利用Network Stream類的Begin Write方法發送數據.Begin Write方法用于向一個已經成功連接的套接字異步發送數據,程序調用Begin Write后,系統會自動在內部產生單獨執行的線程中發送數據.

Network Stream network Stream=tcpClient.Get-Stream();

...

byte[] bytes Data= System.Text.Encoding.UTF8.Get Bytes(str);

network Stream.Begin Write(bytes Data,0,bytes-Data.Length,new Async Callback(Send Data Callback),network Stream);

network Stream.Flush();

...

void Send Data Callback(IAsync Result ar)

{

...

network Stream.End Write(ar);

...

}

5)接收數據處理技術.

與發送數據類似,在客戶端已與服務器端建立連接的情況下,可利用Network Stream類的Begin-Read方法接收數據.Begin Read方法用于向一個已經成功連接的套接字異步接收數據,程序調用Begin Read后,系統會自動在內部產生單獨執行的線程中接收數據[16].例如:

Network Stream stream=tcp Client.Get Stream();

...

byte[] bytes=new byte[tcp Client.Receive-Buffer Size];

stream.Begin Read(bytes,0,bytes.Length,Read Data Callback,stream);

network Stream.Flush();

...

void Read Data Callback(IAsync Resultar)

{

...

Network Stream ns=(Network Stream)ar.Async-State;

int count=ns.End Read(ar);

...

}

2.2 節點監控模塊的并行實現技術

1)引入MPICH的動態庫及其相關函數,例如:

[DllImport("mpich2mpi.dll")]

public static extern int MPI_Init(ref int argc,Int Ptr args);

2)定義程序中所需要的與MPI有關的變量,例如,MPI_MAX_PROCESSOR_NAME是MPI預定義宏,表示允許機器名字的最大長度;

3)MPI程序的開始和結束必須是MPI_Init和MPI_Finalize函數,分別完成MPI程序的初始化和結束工作;

4)在MPI_Init和MPI_Finalize函數之間是MPI程序的主程序體,用于編程人員完成各種MPI過程的定制調用和C語句[17].

3 結束語

應用本文設計的C/S模式并行計算框架及其實現方法的工程實踐表明:1)高性能的并行計算系統不應單純依賴于硬件設備性能的提升.利用科學合理的軟件架構設計,可在有限的硬件條件下,顯著提升系統計算性能和效果.2)基于C/S模式的并行計算架構設計思路適用于各計算程序相對獨立、無進程間數據交互的大數據量計算,能夠實現計算程序和計算節點的靈活部署、動態組合,具有良好的可擴充性.在后續的研究工作中,將進一步深入探討計算程序間需要頻繁進行數據交互、同步的緊耦合計算系統的構建方法.

[1]GUNARATHNE T,ZHANG Bingjing,WU T L,et al.Scalable parallel computing on clouds using Twister4Azure iterative Map Reduce[J].Future Generation Computer Systems,2013,29(4):1035-1048.

[2]TINETTIF G,MENDEZM,De GIUSTIA.Restructuring Fortran legacy applications for parallel computing in multiprocessors[J].Journal of Supercomputing,2013,64(2):638-659.

[3]QIU Qinru,WU Qing,BISHOPM,et al.A parallel neuromorphic text recognition system and its implementation on a heterogeneous high-performance computing cluster[J].IEEE Transactions on Computers,2013,62(5):886-899.

[4]ZHAO Gang,BRYAN B A,KING D,et al.Large-scale,high-resolution agricultural systems modeling using a hybrid approach combining grid computing and parallel processing[J].Environmental Modeling and S of tware,2013,41:231-238.

[5]DONG Yanhui,LIGuomin,XU Haizhen.Distributed parallel computing in stochastic modeling of groundwater systems[J].Ground Water,2013,51(2):293-297.

[6]LEE S,CHOIC,KIM J.Evaluating the suitability of the EGM2008 geopotential model for the Korean peninsula using parallel computing on a diskless cluster[J].2013,52:132-145.

[7]CHAMON C,MUCCIOLO E R.Virtual parallel computing and a search algorithm using matrix product states[J].Physical Review Letters,2012,109(3):030503.

[8]CHOIK,JANGE S.Leveraging parallel computing inmodern video coding standards[J].IEEE Transactions on Power Delivery,2012,27(3):1468-1476.

[9]ZHANG Y J,JHA M,GU R,et al.A DEM-based parallel computing hydrodynamic and transport model[J].River Research and Applications,28(5):647-658.

[10]KHAN S U,BOUVRY P,ENGEL T.Energy-efficient high-performance parallel and distributed computing[J].Journal of Supercomputing,60(2):163-164.

[11]王萃寒,趙晨,許小剛,等.分布式并行計算環境:MPI[J].計算機科學,2003,30(1):25-26.WANG Cuihan,ZHAO Chen,XU Xiaogang,et al.Distributed paralel computing environment:MPI[J].Computer Science,2003,30(1):25-26.

[12]王巍,張杰敏.基于樹型MPI并行計算系統的設計與實現[J].電子技術應用,2011,37(12):126-129.WANGWei,ZHANG Jiemin.Design and implementation of MPI parallel computing system based on tree structure[J].Application of Electronic Technique,2011,37(12):126-129.

[13]陳國良.并行算法實踐[M].北京:高等教育出版社,2004:24-27.

[14]束長寶,于照,張繼勇.基于TCP/IP的網絡通信及其應用[J].微計算機信息,2006,22(12-3):157-159.SHU Chanbao,YU Zhao,ZHANG Jiyong.Network communication based on TCP/IP and its application[J].Microcomputer Information,2006,22(12-3):157-159.

[15]黃國盛,梁平原,周小清.通過Winsock實現TCP/IP網絡通信[J].吉首大學學報:自然科學版,2002,23(2):153-155.HUANG Guosheng,LIANG Pingyuan,ZHOU Xiaoqing.Implementing TCP/IP Network communication by windows sockets[J].Journal of Jishou University:Natural Science Edition,2002,23(2):153-155.

[16]馬駿.C#網絡應用高級編程[M].北京:人民郵電出版社,2006:69-77.

[17]都志輝.高性能計算之并行編程技術-MPI并行程序設計[M].北京:清華大學出版社,2001:20.

猜你喜歡
程序方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 欧美日本在线观看| 九九香蕉视频| 在线精品欧美日韩| 久久亚洲AⅤ无码精品午夜麻豆| AV网站中文| 18禁影院亚洲专区| 欧美激情视频二区| yjizz国产在线视频网| 日本国产一区在线观看| 国产无套粉嫩白浆| 园内精品自拍视频在线播放| 欧美激情综合| 欧美亚洲一区二区三区在线| av在线无码浏览| 亚洲国产天堂久久九九九| 高清码无在线看| 午夜福利无码一区二区| 国产成人AV男人的天堂| 欧美另类第一页| 曰韩人妻一区二区三区| 美女视频黄频a免费高清不卡| 国产成人乱无码视频| 国产精品亚洲片在线va| 91免费国产在线观看尤物| 精品福利视频导航| 91精品国产自产91精品资源| 最新国语自产精品视频在| 在线国产毛片| 国产91透明丝袜美腿在线| 欧美亚洲一二三区 | 欧美日韩在线第一页| 国产老女人精品免费视频| 538国产在线| 在线无码九区| 欧美色视频在线| 亚洲一级毛片| 国产玖玖玖精品视频| 日韩少妇激情一区二区| 国产精选小视频在线观看| 久久综合九色综合97网| 久久久久久高潮白浆| 天天色天天操综合网| 99视频在线精品免费观看6| 欧美性天天| 亚洲视频欧美不卡| 亚洲va在线∨a天堂va欧美va| 欧美国产日韩一区二区三区精品影视| 免费黄色国产视频| 日韩小视频在线播放| 在线观看国产精品日本不卡网| 乱人伦中文视频在线观看免费| 日韩经典精品无码一区二区| 亚洲午夜18| 亚洲男人的天堂在线观看| 国产啪在线91| 国产精品女人呻吟在线观看| 成年A级毛片| 国内精品伊人久久久久7777人| 亚洲视频影院| 四虎永久在线精品影院| 性做久久久久久久免费看| 国禁国产you女视频网站| 国产亚洲欧美在线视频| 亚洲一区网站| 久久精品人人做人人爽电影蜜月| 日本一区高清| a级毛片在线免费| 人人妻人人澡人人爽欧美一区| 91精品人妻一区二区| 国产成人精品高清在线| 91欧洲国产日韩在线人成| 国产成人综合网| 97se亚洲综合在线天天| 国产国产人成免费视频77777| 高清不卡一区二区三区香蕉| 欧美一级高清片久久99| 婷婷色中文| AV不卡国产在线观看| 2021国产在线视频| 成人一级免费视频| 一级毛片网| 国产精品网曝门免费视频|