分布式并行計算的作業分配方法及分配系統的制作方法
【專利摘要】本發明公開了一種分布式并行計算的作業分配方法及分配系統,該分配方法包括:客戶端與多個服務器建立網絡聯接,將復雜計算任務劃分為一系列獨立計算任務;客戶端創建多個線程并由這些線程將獨立計算任務分別分配至多個服務器及客戶端自身;多個服務器及客戶端采用共享內存式并行方法對分配到的計算任務進行運算;計算完畢后,客戶端接收各服務器返回的運算結果。本發明分布式并行分配方法,通過將總的計算任務集劃分為一系列獨立計算任務,同時在在多個服務器及客戶端上采用共享內存式的方法進行并行計算,簡化了服務器端的安裝程序,并節省了大量數據網絡傳輸的耗時,提高了并行計算的效率。
【專利說明】分布式并行計算的作業分配方法及分配系統
【技術領域】
[0001]本發明涉及數據處理領域,特別地,涉及一種分布式并行計算的作業分配方法及分配系統。
【背景技術】
[0002]分布式并行計算是利用互相聯網的多臺計算機同時進行計算,實現分布式并行計算的關鍵是利用網絡在計算機之間進行數據的發送和接收。現有商用優化軟件或CAE軟件一般在MPI (Message Passing Interface,消息傳遞接口)軟件包的基礎上開發分布并行功能。每個參與并行計算的計算機均需安裝該軟件包。MPI軟件包有許多函數,通過調用這些函數可方便地建立計算機之間的網絡聯結,并進行各種數據的發送和接收。
[0003]但現有的并行計算系統存在如下缺點:
[0004]I)每個參與并行計算的計算機除了要安裝并行應用(如靈敏度分析等)軟件外,還需安裝并行MPI軟件包;
[0005]2)并行計算時設置的參數較多,互相聯網的各計算機之間網絡傳輸的數據量亦大,耗費大量時間,使并行效率降低;
[0006]3)軟件開發復雜,且客戶端及各服務器加載的程序代碼多。
[0007]涉及到航空發動機的設計開發時,往往需要對航空發動機零部件的應力及靈敏度等進行仿真分析,該類計算作業任務包括參數化建模、網格生成計算、用于固體力學分析的有限元計算、用于流體力學的有限體積法或者差分法計算及結果處理計算等,該類作業任務的計算數據大,往往需要耗費較長的時間。
【發明內容】
[0008]本發明目的在于提供一種分布式并行計算的作業分配方法及分配系統,以解決現有的計算作業任務處理效率低的技術問題。
[0009]為實現上述目的,本發明采用的技術方案如下:
[0010]一種分布式并行計算的作業分配方法,包括以下步驟:
[0011]客戶端與多個服務器建立網絡聯接;
[0012]客戶端將復雜計算任務劃分為一系列獨立計算任務;
[0013]客戶端將創建多個線程并由線程將獨立計算任務分別分配至多個服務器及客戶端自身;
[0014]多個服務器及客戶端采用分布式并行計算方法對分配到的獨立計算任務進行運算;
[0015]客戶端接收多個服務中的各服務器返回的運算結果。
[0016]進一步地,在客戶端接收到多個服務中的各服務器返回的運算結果之后,該方法還包括:對接收到的運算結果進行處理并刪除已建立的線程。
[0017]進一步地,多個服務器和客戶端各自均采用共享內存式并行計算方法進行并行運笪
[0018]進一步地,服務器及客戶端為多核處理器。
[0019]進一步地,客戶端創建的線程數與服務器及客戶端數之和相等。
[0020]進一步地,在復雜計算任務為渦輪盤的靈敏度分析的情況下:
[0021]客戶端將渦輪盤的靈敏度分析任務劃分為一系列獨立計算任務的步驟包括:客戶端與多個服務器建立網絡聯接,并將渦輪盤的靈敏度分析任務劃分為多個獨立的渦輪盤應力分析任務;
[0022]客戶端將創建多個線程并由線程將獨立計算任務分別分配至多個服務器及客戶端自身的步驟包括:客戶端創建多個線程,并通過線程將所需設計參數發送給多個服務器,獨立計算任務數為服務器數與客戶端數之和,客戶端數為一;
[0023]多個服務器及客戶端采用分布式并行計算方法對分配到的獨立計算任務進行運算的步驟包括:客戶端通過多線程向多個服務器發送運算指令,服務器接收到指令后開始進行運算,客戶端發送完指令后,自身也對被分配到的渦輪盤應力分析任務進行運算,渦輪盤應力分析任務包括根據設計參數進行的實體建模、網格生成、有限元分析、結果處理的運算,以得到與各組參數變量對應的最大應力;
[0024]客戶端接收多個服務中的各服務器返回的運算結果的步驟包括:客戶端接收各服務器發送的與各組參數變量對應·的最大應力,根據最大應力進行靈敏度分析,靈敏度分析的公式為Ai =Λ ?—/八^其中一^靈敏度,O _為參數變量對應的最大應力,XiS參數變量,Λ表示變化范圍。
[0025]根據本發明的另一方面,還提供一種分布式并行計算的作業分配系統,包括客戶端及與客戶端聯網的多個服務器。其中,客戶端包括:
[0026]任務劃分單元,用于將復雜的計算任務劃分為多個獨立計算任務;
[0027]任務分配單元,用于創建多線程,并通過多線程將獨立計算任務所需的計算參數和運算指令發送給服務器,由此將獨立計算任務分配給服務器;同時分配一個獨立計算任務給客戶端自身;
[0028]服務器及客戶端均設有運算單元,用于對分配的計算任務采用共享內存式并行計算方法實施運算;
[0029]客戶端設有結果處理單元,服務器完成計算任務后,自動向客戶端發送運算結果;客戶端向服務器發送運算指令后一直處于等待接收服務器返回運算結果的狀態,直到接收完所有服務器的運算結果后,再獲取自身的運算結果,并進行結果處理。
[0030]進一步地,客戶端還包括:復位單元,用于在完成一輪分布式并行計算后刪除已建立的多線程,以便為下一次的作業任務分配作準備。
[0031]進一步地,服務器及客戶端為多核處理器。
[0032]進一步地,獨立計算任務數與服務器及客戶端數之和相等,參與計算的處理器核數為服務器及客戶端處理器核數之和。
[0033]本發明具有以下有益效果:
[0034]本發明分布式并行計算的作業分配方法及分配系統,通過將復雜計算任務劃分為一系列獨立計算任務,創建多個線程將設計參數及運行指令發送多個服務器,實現在多個服務器及客戶端上的分布式并行計算,且多個服務器和客戶端均采用共享內存式并行計算方法對獨立計算任務進行計算,較于傳統的計算機獨立執行作業任務,提高了作業執行效率;較于MPI分布式并行計算,簡化了服務器端的安裝程序,并節省了大量數據網絡傳輸的耗時,提高了并行計算的效率。
[0035]除了上面所描述的目的、特征和優點之外,本發明還有其它的目的、特征和優點。下面將參照圖,對本發明作進一步詳細的說明。
【專利附圖】
【附圖說明】
[0036]構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0037]圖1是本發明分布式并行計算的作業分配方法優選實施例的步驟流程示意圖;
[0038]圖2是本發明分布式并行計算的作業分配方法進行渦輪盤的靈敏度分析的步驟流程示意圖;
[0039]圖3是本發明優選實施例中渦輪盤的結構示意圖;以及
[0040]圖4是本發明優選實施例分布式并行計算的作業分配系統的原理方框圖。
【具體實施方式】
[0041]以下結合附圖對本發明的實施例進行詳細說明,但是本發明可以由權利要求限定和覆蓋的多種不同方式實施。
[0042]參照圖1,本發明的優選實施例提供了一種分布式并行計算的作業分配方法,用于客戶端及與客戶端聯網的多個服務器,本發明將復雜計算任務劃分為多個獨立的計算任務并分配至與客戶端聯網的多個服務器上并行運算,參照圖1,該方法包括以下步驟:
[0043]步驟S100、客戶端與多個服務器建立網絡聯接;
[0044]步驟S110、客戶端將復雜計算任務劃分為一系列獨立計算任務;
[0045]步驟S120、客戶端創建多個線程并由這些線程將獨立計算任務分別分配至多個服務器及客戶端自身;
[0046]步驟S130、多個服務器及客戶端采用分布式并行計算方法對分配到的獨立計算任務進行運算;
[0047]步驟S140、客戶端接收各服務器返回的運算結果。
[0048]本發明實施例通過將復雜計算任務劃分為一系列獨立計算任務并分配至多個服務器及客戶端并行運算,從而提高了數據的處理效率。優選地,多個服務器和客戶端均采用共享內存式并行計算的方法對所分配的計算任務進行計算,較于傳統的計算機獨立執行作業任務,提高了作業執行效率;較于MPI分布式并行計算,簡化了服務器端的安裝程序,并節省了大量數據網絡傳輸的耗時,提高了并行計算的效率。
[0049]本發明實施例中,客戶端與服務器之間利用WINDOWS Soketes的系列函數實現聯網計算機之間的網絡聯接、數據發送和接收。WINDOWS Soketes的系列函數包括:connect (網絡聯接)、send (發送數據),recv (接收數據)。這樣,并行計算時,各服務器上不需額外安裝MPI軟件包,使得服務器上的軟件變得簡單。
[0050]優選地,在步驟S140還后包括步驟S150:客戶端刪除上一輪并行計算所創建的多個線程,為下一輪的作業任務的分配做準備。這樣,客戶端循環反復地并行處理大量的作業任務。
[0051]優選地,服務器及客戶端為多核處理器。優選地的控制策略,客戶端將作業任務劃分的獨立計算任務數與服務器及客戶端數之和相等,參與計算的處理器核數為服務器及客戶端處理器核數之和,這樣,將客戶端及服務器的所有處理器核全部參與作業任務的計算,提高作業任務的并行處理效率。
[0052]參照圖2,下面以渦輪盤的靈敏度分析(輪盤應力對設計參數的靈敏度)為作業任務來進行并行計算,具體步驟如下:
[0053]步驟S200、客戶端與多個服務器建立網絡聯接,每個服務器有各自的IP地址,客戶端根據IP地址與服務器建立網絡聯接;
[0054]步驟S210、客戶端渦輪盤的靈敏度計算任務劃分為多個獨立的渦輪盤應力計算任務;
[0055]步驟S220、 客戶端創建多個線程,各線程根據IP地址向服務器發送相應的輪盤應力計算所需的設計參數和運算指令;
[0056]步驟S230、各服務器接收到設計參數和運算指令,進行計算;客戶端發送完設計參數和運行指令后也對分配給自身的計算任務進行計算,輪盤應力計算包括根據不同設計參數而進行的實體建模、網格生成、有限元分析、結果處理等運算,以得到與各設計參數對應的最大應力σ iMAX ;
[0057]步驟S240、客戶端接收各服務器運算所得的輪盤最大應力σ iMAX ;
[0058]步驟S250、客戶端根據獲得的與不同設計參數對應的輪盤最大應力進行靈敏度計算,靈敏度分析的公式為:λ i = Λ σ _/△&,其中,λ i為靈敏度,σ iMAX為參數變量對應的最大應力,Xi為參數變量,Λ表示變化范圍。
[0059]參照圖3,本實施例中,渦輪盤的設計參數包括渦輪盤的長度變量X1、Χ2、Χ3,當渦輪盤的長度變量X1、Χ2、Χ3變化時將引起輪盤的最大應力變化,但對應這些變量的變化引起的應力變化的敏感程度,需要進行靈敏度分析。渦輪盤最大應力σ iMAX相對于Xi(i = 1,2,3)的靈敏度Xi的計算公式為:Α, =δσ li(i /dX , ^ Ασ,Μη M1,其中Λ ^表示微小的變化。
[0060]假設有6臺計算機參與計算,其中I臺為客戶端,其他5臺為服務器端,大致步驟如下:
[0061]I)靈敏度計算(客戶端)程序,計算 Xil = X1-0.5 Δ 1、Xi2 = Xi+0.5 Δ 土 (Xi2-Xil =Ai, i = 1,2,3),得到6組設計變量值:
[0062][X11, X2, X3]τ = [Χ「0.5 Δ !, X2, X3]τ
[0063][X12, X2, X3]τ = [Xi+0.5 Δ !, X2, X3]τ
[0064][X1, X21, X3]τ = [X1, X2-0.5Δ2, X3]Τ
[0065][X1, X22, X3]τ = [X1, Χ2+0.5 Δ 2, X3]τ
[0066][X1, X2, X31]τ = [X1, X2, X3-0.5 Λ 3]τ
[0067][X1, X2, X32]τ = [X1, X2, Χ3+0.5Δ3]Τ
[0068]分別發送給6臺計算機(其中一個留給客戶端自身);
[0069]2)各計算機接收到變量參數后,運行參數化造型軟件(每個計算機上安裝有參數化造型軟件、網格生成軟件、有限元分析軟件、結果處理軟件)根據新的參數生成結構實體模型,網格生成程序生成有限元網格,有限元程序計算應力,結果處理軟件選出最大應力;以上計算在6臺計算機上是同時進行的;各計算機上有限元分析等采用了共享內存式并行計算方法進行并行計算;
[0070]3)各服務器將計算的最大應力返回客戶端程序;
[0071]4)客戶端程序接收到各服務器返回的最大應力后,采用靈敏度分析的公式(Λ =θσ, ΙΜΛ IdX , ~ΑσιΧη /Al )計算靈敏度 λ” λ2、λ3。
[0072]根據本發明的另一方面,還提供了一種分布式并行計算的作業分配系統,參照圖4,包括客戶端100及與客戶端100聯網的多個服務器200,
[0073]客戶端100包括:
[0074]任務劃分單元110,用于將復雜計算任務劃分為一系列獨立計算任務;
[0075]任務分配單元120,創建多個線程并由這些線程將獨立計算任務分別分配至多個服務器200及客戶端100自身;
[0076]服務器200及客戶端100的處理器內均設有運算單元,客戶端100的處理器內設有運算單元150,服務器200的處理器內設有運算單元210,運算單元150及運算單元210均用于對接收到的獨立的計算任務采用共享內存式并行計算方法實施運算,并將運算后的結果返回至客戶端100的處理器。
[0077]進一步地,客戶端100還包括:復位單元140,用于刪除上一輪并行計算創建的多個線程,為下一輪的作業任務分配做準備。
[0078]進一步地,服務器200及客戶端100為多核處理器。
[0079]進一步地,多個獨立計算任務的線程數與服務器200及客戶端100數之和相等,參與計算的處理器核數為服務器200及客戶端100處理器核數之和。
[0080]進一步地,作業任務為渦輪盤的靈敏度計算,具體步驟如下:
[0081]任務劃分單元110將渦輪盤的靈敏度計算任務劃分多個獨立的渦輪盤應力計算任務;
[0082]任務分配單元120創建多個線程,各線程根據IP地址向服務器發送相應的輪盤應力計算所需的設計參數和運算指令,即將具有不同設計參數的輪盤應力計算任務分配給各服務器,同時留一個輪盤應力計算任務給自身。
[0083]各服務器200及客戶端100自身接收到計算輪盤應力計算任務后,各運算單元采用共享內存式并行計算方法,對具有不同設計參數的輪盤的應力進行計算,計算流程包括實體建模、網格生成、有限元分析、結果處理等運算,以得到與不同設計參數對應的輪盤最大應力;
[0084]客戶端100接收各服務器200發送計算所得的輪盤最大應力,進行靈敏度分析,靈敏度分析的公式為=Xi=Ao -/AXi,其中,λ i為靈敏度,O iMAX為參數變量對應的最大應力,Xi為參數變量,Λ表示變化范圍。
[0085]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種分布式并行計算的作業分配方法,其特征在于,包括以下步驟: 客戶端(100)與多個服務器(200)建立網絡聯接; 所述客戶端(100)將復雜計算任務劃分為一系列獨立計算任務; 所述客戶端(100)將創建多個線程并由所述線程將所述獨立計算任務分別分配至多個服務器(200)及所述客戶端(100)自身; 所述多個服務器(200)及客戶端(100)采用分布式并行計算方法對分配到的所述獨立計算任務進行運算; 所述客戶端接收多個服務中的各服務器(200)返回的運算結果。
2.根據權利要求1所述的分布式并行計算的作業分配方法,其特征在于, 在所述客戶端(100)接收到多個服務中的各服務器(200)返回的運算結果之后,所述方法還包括:對接收到的運算結果進行處理并刪除已建立的線程。
3.根據權利要求1所述的分布式并行計算的作業分配方法,其特征在于, 所述多個服務器(200)和所述客戶端(100)各自均采用共享內存式并行計算方法進行并行運算。
4.根據權利要求3所述的分布式并行計算的作業分配方法,其特征在于,所述服務器(200)及所述客戶端(100)為多核處理器。
5.根據權利要求4所述的分布式并行計算的作業分配方法,其特征在于,所述客戶端(100)創建的線程數與所述服務器(200)及所述客戶端(100)數之和相等。
6.根據權利要求1至5任一項所述的分布式并行計算的作業分配方法,其特征在于,在所述復雜計算任務為渦輪盤的靈敏度分析的情況下: 所述客戶端(100)將渦輪盤的靈敏度分析任務劃分為一系列獨立計算任務的步驟包括:所述客戶端(100)與所述多個服務器(200)建立網絡聯接,并將渦輪盤的靈敏度分析任務劃分為多個獨立的渦輪盤應力分析任務; 所述客戶端(100)將創建多個線程并由所述線程將所述獨立計算任務分別分配至多個服務器(200)及客戶端(100)自身的步驟包括:所述客戶端(100)創建多個線程,并通過所述線程將所需設計參數發送給所述多個服務器(200),所述獨立計算任務數為所述服務器(200)數與所述客戶端(100)數之和,所述客戶端(100)數為一; 所述多個服務器(200)及客戶端(100)采用分布式并行計算方法對分配到的所述獨立計算任務進行運算的步驟包括:所述所述客戶端(100)通過所述多線程向所述多個服務器(200)發送運算指令,所述服務器(200)接收到指令后開始進行運算,所述客戶端(100)發送完所述指令后,自身也對被分配到的渦輪盤應力分析任務進行運算,渦輪盤應力分析任務包括根據所述設計參數進行的實體建模、網格生成、有限元分析、結果處理的運算,以得到與各組參數變量對應的最大應力; 所述客戶端(100)接收多個服務中的各服務器(200)返回的運算結果的步驟包括:客戶端(100)接收各服務器(200)發送的與各組參數變量對應的最大應力,根據所述最大應力進行靈敏度分析,所述靈敏度分析的公式為=Xi=A Oimx/Λ Xi,其中,Xi為靈敏度,O IMX為參數變量對應的最大應力,Xi為參數變量,Λ表示變化范圍。
7.一種分布式并行計算的作業分配系統,包括客戶端(100)及與所述客戶端(100)聯網的多個服務器(200),其特征在于,所述客戶端(100)包括: 任務劃分單元(110),用于將復雜的計算任務劃分為多個獨立計算任務; 任務分配單元(120),創建多線程,并通過所述多線程將所述獨立計算任務所需的計算參數和運算指令發送給所述服務器(200),由此將所述獨立計算任務分配給所述服務器(200);同時分配一個所述獨立計算任務給所述客戶端(100)自身; 所述服務器(200)及客戶端(100)均設有運算單元,用于對分配的計算任務采用共享內存式并行計算方法實施運算; 所述客戶端(100)設有結果處理單元,所述服務器(200)完成計算任務后,自動向所述客戶端(100)發送運算結果;所述客戶端(100)向所述服務器(200)發送運算指令后一直處于等待接收所述服務器(200)返回計算結果的狀態,直到接收完所有所述服務器(200)的運算結果后,再獲取自身的運算結果,并進行結果處理。
8.根據權利要求7所述的分布式并行計算的作業分配系統,其特征在于, 所述客戶端(100)還包括:復位單元(140),用于在完成一輪分布式并行計算后刪除已建立的所述多線程,以便為下一次的作業任務分配作準備。
9.根據權利要求7所述的分布式并行計算的作業分配系統,其特征在于, 所述服務器(200)及所述客戶端(100)為多核處理器。
10.根據權利要求9所述的分布式并行計算的作業分配系統,其特征在于, 所述獨立計算任務數與所述服務器(200)及所述客戶端(100)數之和相等,參與計算的處理器核數為所述服務器 (200)及所述客戶端(100)處理器核數之和。
【文檔編號】H04L29/08GK103428217SQ201310361711
【公開日】2013年12月4日 申請日期:2013年8月19日 優先權日:2013年8月19日
【發明者】蔡顯新, 吳春來, 郭小軍 申請人:中國航空動力機械研究所