亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用.net Remtoing并行計算

2019-11-18 12:07:37
字體:
來源:轉載
供稿:網友

  在MSDN上發現一篇文章是介紹如何使用.net Remoting進行并行計算的,剛好本人對并行計算很有愛好,于是仔細地分析了一下此程序的代碼。原文及程序可以在此處獲得。由于覺得原文只是作了一個大致的講解,有很多細節只是掩藏在源代碼中,所以在花了很多時間分析完源程序后,才對原文有了很深的理解,疏理出一些內容出來和大家分享。
  
  一.概述
  .NET Remtoing用于在遠程服務器和客戶機之間互相調用對象,這些對象是存在于同一AppDomain中的。它使用Soap或二進制的方式傳遞消息(即要調用的對象),傳送協議為HTTP或TCP。
  
  二.Remoting如何實現并行計算?
  .NET Remoting與并行計算似乎是兩個不同的概念,前者更類似于分布式計算和Web Service,而后者實際上是計算粒度更小的任務,但它將一個計算任務分配給多個節點計算,然后匯總成一個結果返回。
  
  根據以上思想,實現上將分布的對象的粒度設計小一點即可實現并行計算。并行計算的一個要害因素是進程(或子任務)間通訊,而我們把.net remoting中的對象間通訊作為進程間通訊即可。
  
  本例并行計算Pi的小數點,精確到N位。使用.net remoting可以如下實現。在每個節點上運行相同的程序,但每個節點計算不同位置的小數位,如NodeA計算小數點后1-9位,NodeB計算10-18位,NodeC計算19-27位,這樣最終匯總的結果就可以有1-27位。由于是并行計算,比起單機計算,時間要快上很多倍,其加速比與每臺節點的速度及整個通信網絡的速度有關。計算模型如下圖所示:
  
 使用.net Remtoing并行計算(圖一)

  三.并行算法
  要進行并行計算,首先要設計好并行算法和通訊模式。由于我們只是在PC機群進行并行計算,所以采用了最簡單的主從式并行模型,即由一個主進程負責任務的分發,結果的歸約,將子任務平均分配到每個節點上計算。
  
  但實際上本文中使用的并不是平均分配任務,而是更好的任務池工作方式。即每個節點計算完一個子任務后,會向主進程申請新的任務,一直到任務全部計算完為止,這樣的好處是計算能力越強的節點計算的任務也越多。比起平均分配來說可以提高總體的計算和減少同步時間。
  
 使用.net Remtoing并行計算(圖二)

  四.程序結構
  此程序主要由以下幾個包組成,
  
 使用.net Remtoing并行計算(圖三)

  ● 4.1) ServerLoader
  
  用于加載提供可遠程調用的服務器對象,指定調用使用的網絡協議和端口,以便于在局域網中被調用,然后偵聽來自客戶端的請求,在服務器上處理此請求并返回結果。
  
  簡單來說即每個節點都必須運行ServerLoader程序,以向外界聲明可被調用的對象(即Plouffe_bellard.dll中的對象)。
  
  以下代碼為調用配置文件:
  
  String ConfigFilePath = Path.GetDirectoryName(application.ExecutablePath) + ServerLoader. exe.config";
  
  RemotingConfiguration.Configure(ConfigFilePath);
  
  配置文件為:ServerLoader.exe.config
  
  <configuration>
  
   <system.runtime.remoting> 
  
  <application name = "ServerLoader"> 
  
   <service>
  
    <wellknown
  
     mode="SingleCall"
  
     type="PB.Plouffe_Bellard,Plouffe_Bellard"
  
     objectUri="Plouffe_Bellard"/>
  
   </service>
  
   <channels>
  
    <channel ref="tcp server" port="9000"/>
  
   </channels>
  
  </application>
  
   </system.runtime.remoting>
  
  </configuration>
  
  ● 4.2) Plouffe_bellard
  
  這就是.NET Remoting中的實際被調用的遠程對象,它被置于每個節點上。它是繼續自System.MarshalByRefObject,這樣的派生對象從來都不會離開它的應用域,客戶就可以通過代理對象調用遠程對象的方法。
  
  它是用來計算圓周率PI的小數點位數的程序,Plouffe_Bellard算法具有很好的并行性,它可以指定要計算的小數點的位置,如第二節所述。
  
  其函數形式為:
  
  public class Plouffe_Bellard : System.MarshalByRefObject
  
  {
  
  public String CalculatePiDigits(int n)
  
          { … }
  
  }
  
  ● 4.3)DigitsOfPi
  
  此子基礎上為整個項目核心部分,可作為客戶端程序運行。它主要實現主界面UI處理、節點配置,多線程創建與同步,計算任務分配與匯總的功能,只需要在任何一臺節點上運行即可。包括以下幾個對象:
  
  MainForm,SolutionArray,SolutionItem,RemotingObject,CalculationThread。
  
  ■ mainForm:即處理UI對象
  
  ■ SolutionArray是并行線程分配與治理程序,如:任務池創建、任務分配、線程創建、同步線程, 匯聚結果等。
  
  ■ SolutionItem即任務的數據結構。包括要計算的小數點位, 計算的結果, 計算的在機器。
  
  ■ RemotingObject是RemotePiCalculator,用于獲取遠程對象。
  
  ■ CalculationThread:計算模塊,在線程中運算(由SolutionArray產生和調用),并不斷從任務池中取得任務進行計算。
  
  以下為這幾個對象的序列圖:
  
 使用.net Remtoing并行計算(圖四)

  當遠程對象的CalculatePiDigits被客戶端程序調用時,此要求即被發送到遠程機器的ServerLoader對象。然后服務器上的對象就會計算結果。最后將計算的結果返回給客戶端程序,顯示在文本框中。
  
  五.結果分析
  機器配置說明
  
  MOORE    700MHz    AMD Duron 192M SDR
  
  LOZIT     1.8GHz    Batumn    256M DDR
  
  時間比較
  
使用.net Remtoing并行計算(圖五)

  由于算法的特性,計算到高位時可以看到計算速度逐漸變慢。在我們的機器上,算到第3000位四周速度已經是非常之慢,忍受不住終于中斷,一共計算了3330位,共耗時719545 ms,即12分鐘。在實驗中還發現,節點只能與同一子網中其它節點相連才有效,要與子網外的節點相連,可能要涉及.net 中的更高級話題,就不太清楚了。
  
  六.后記:
  本文中的并行算法相對簡單,沒有涉及并行計算的高級算法及其它內容,如子任務間并沒有傳遞數據。使用.net remoting是否適合作并行計算呢?當在科學計算領域中已經有現成的MPI,MVP等并行通訊庫可用時?假如可以出現MPI for C#,那真是一大福音。(似乎俄羅斯的專家們已經實現了這個項目,叫做T-System[2])。假如有時間,希望會在以后我文章中繼續研究用.net remoting進行并行計算。國外的一些研究組似乎已經有不少開始這方面的研究,希望有愛好的朋友和本人聯系,一同探討。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久亚洲影院| 91久久久久久久久久久久久| 韩国精品美女www爽爽爽视频| 亚洲一区av在线播放| 欧美极品少妇与黑人| 国产大片精品免费永久看nba| 欧美日韩国产综合视频在线观看中文| 午夜精品久久久久久久白皮肤| 亚洲成人在线视频播放| 久久久久女教师免费一区| 国产午夜精品一区二区三区| 中文字幕自拍vr一区二区三区| 国精产品一区一区三区有限在线| 亚洲人高潮女人毛茸茸| 亚洲成年人影院在线| 91精品综合久久久久久五月天| 国产午夜精品全部视频在线播放| 欧美激情精品久久久久久| 精品久久久香蕉免费精品视频| 97热精品视频官网| 国产日韩欧美中文在线播放| 国产欧美久久久久久| 国产一区二区日韩精品欧美精品| 欧美电影免费观看高清| 久久精品99久久久香蕉| 中文字幕日韩欧美| 国产精品丝袜高跟| 精品国产区一区二区三区在线观看| 亚洲第一页中文字幕| 国产日韩换脸av一区在线观看| 国产网站欧美日韩免费精品在线观看| 国模吧一区二区| 国产精品一区久久久| 久久精品国产96久久久香蕉| 久久九九国产精品怡红院| 欧美国产日韩免费| www亚洲欧美| 国内精品久久久久影院优| 国产美女扒开尿口久久久| 欧美激情videos| 日韩亚洲国产中文字幕| 亚洲高清在线观看| 17婷婷久久www| 成人乱人伦精品视频在线观看| 欧美日韩视频免费播放| 97精品在线视频| 亚洲午夜未删减在线观看| 国产亚洲精品久久久久久牛牛| 91成人性视频| 亚洲天堂视频在线观看| 久久亚洲精品国产亚洲老地址| 美女福利视频一区| 亚洲国产精品成人va在线观看| 精品久久久久久| 亚洲aa中文字幕| 亚洲综合精品一区二区| 亚州国产精品久久久| 91在线免费看网站| 欧美孕妇孕交黑巨大网站| 日韩av影院在线观看| 亚洲第一男人天堂| 国内精品视频久久| 欧美日韩在线免费观看| 懂色av影视一区二区三区| 国产精品高清网站| 久久久久日韩精品久久久男男| 国产精品久久久久久久久久久久久| 欧美精品18videosex性欧美| 91免费人成网站在线观看18| 亚洲黄色有码视频| 亚洲欧美国产精品久久久久久久| 日韩欧美国产骚| 亚洲欧美一区二区激情| 亚洲精品综合精品自拍| 久久天天躁狠狠躁夜夜躁| 国产精品毛片a∨一区二区三区|国| 在线观看日韩欧美| 久久久久亚洲精品成人网小说| 成人做爰www免费看视频网站| 国产成人激情视频| 日本高清视频精品| 5278欧美一区二区三区| 国产人妖伪娘一区91| 亚洲性日韩精品一区二区| 日韩av片免费在线观看| 日韩男女性生活视频| 国产精品吊钟奶在线| 国产欧美精品一区二区三区-老狼| 国产一区欧美二区三区| 久久精品99久久香蕉国产色戒| 亚洲精品国产精品久久清纯直播| 国产精品成av人在线视午夜片| 国产亚洲人成a一在线v站| 97在线精品视频| 欧美在线一级va免费观看| 久久福利视频导航| 久久久www成人免费精品张筱雨| 日韩成人性视频| 成人性生交大片免费观看嘿嘿视频| 国产精品久久久久免费a∨大胸| 精品偷拍各种wc美女嘘嘘| 日韩免费精品视频| 久久久伊人欧美| 51ⅴ精品国产91久久久久久| 欧美在线视频一区二区| 成人免费观看网址| 亚州精品天堂中文字幕| 2019av中文字幕| 久久艳片www.17c.com| 国产精品高潮在线| 久久精品视频免费播放| 色诱女教师一区二区三区| 亚洲999一在线观看www| 成人免费午夜电影| 久久91亚洲人成电影网站| 久久夜精品va视频免费观看| 国产97在线亚洲| 欧美一区二区三区艳史| 国产视频精品久久久| 国内精品久久久久影院 日本资源| 国产精品6699| 免费91在线视频| 丝袜美腿亚洲一区二区| 久久影视电视剧免费网站| 亚洲第一级黄色片| 成人美女av在线直播| 粉嫩av一区二区三区免费野| 丰满岳妇乱一区二区三区| 伊人男人综合视频网| 国产一区二区三区视频在线观看| 亚洲成人av资源网| 国产欧美精品一区二区三区介绍| 91精品国产91久久久久久久久| 日韩色av导航| 日韩中文字幕国产| 日韩在线激情视频| 日韩电影在线观看永久视频免费网站| 日韩av综合中文字幕| 中文字幕av一区| 国产一区二区日韩| 日韩在线播放av| 亚洲日本aⅴ片在线观看香蕉| 欧美在线精品免播放器视频| 欧美精品激情blacked18| 日韩美女激情视频| 亚洲最大av在线| 国产精品第一页在线| 这里精品视频免费| 国产成人一区二区三区| 亚洲免费av电影| 欧美激情第一页xxx| 欧美成人精品在线观看| 国产精品av免费在线观看| 欧美专区第一页| 国产一区av在线| 亚洲人成自拍网站| 91天堂在线观看| 欧美激情免费观看| 亚洲精品99久久久久中文字幕| 中文字幕在线观看亚洲| 国外成人在线播放| 国产精品999999| 成人av色在线观看| 亚洲美女动态图120秒|