欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng)的制作方法

文檔序號:6634799閱讀:292來源:國知局
一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及并行計算【技術領域】,特別是關于一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng)。并行計算構件包括,并行計算構件接口,為其它單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù);所述數(shù)據(jù)分布存儲單元,用于在進程的私有內存空間存儲數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù);所述數(shù)據(jù)并行通信單元,用于從其他進程的私有內存空間復制數(shù)據(jù)場存儲到本地進程;所述數(shù)值并行計算單元,用于根據(jù)數(shù)值算法的數(shù)值模擬計算流程,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算。通過上述實施例的方法和系統(tǒng),可以顯著提升軟件模塊的可復用性、可維護性和可擴展性,顯著提升應用軟件的計算效率。
【專利說明】一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng)

【技術領域】
[0001]本發(fā)明涉及并行計算【技術領域】,特別是關于一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng)。

【背景技術】
[0002]當前,串行程序并行化是數(shù)值模擬并行應用軟件的常用研發(fā)方法,分兩個步驟:第一,在小規(guī)模計算的條件下,針對實際應用問題,設計數(shù)據(jù)結構和數(shù)值算法,研制串行程序;第二,基于高性能計算機體系結構和并行編程環(huán)境,將串行程序并行化,所得并行程序一方面在小規(guī)模計算條件下可獲得與串行程序一致的模擬結果,另一方面通過增加處理器核數(shù)來擴大計算規(guī)模。
[0003]串行程序并行化的優(yōu)點是簡單直接,但很難適應實際應用的需求變化和高性能計算機體系結構的復雜化。實際應用的需求變化表現(xiàn)于多物理過程或多時空尺度耦合,代碼復雜度持續(xù)增長,需要多個團隊協(xié)同研發(fā);高性能計算機體系結構的復雜化表現(xiàn)于效能墻,實際應用領域專家很難直接編寫高效能使用計算機的程序代碼。串行程序并行化將并行語句嵌入到串行程序的代碼行之間,不改變數(shù)據(jù)結構、數(shù)值算法和模塊結構,而串行程序通常面向小規(guī)模計算進行設計,實際應用相對簡單,較少考慮大規(guī)模計算的性能需求,也較少考慮模塊的復用,呈現(xiàn)計算效率低、可復用程度低、可維護性和可擴展性差的不足。由此,隨著高性能計算機峰值性能的持續(xù)提升,隨著實際應用的日趨復雜和多樣,串行程序并行化的研發(fā)方法已經很難適應新一代數(shù)值模擬并行應用軟件的快速研發(fā),亟待提出新的研發(fā)方法和系統(tǒng)。


【發(fā)明內容】

[0004]為了解決現(xiàn)有技術并行計算中針對不同應用軟件開發(fā)復用性差效率低的問題,本發(fā)明提出一種并行計算構件、方法及相應并行軟件開發(fā)方法與系統(tǒng),顯著提升軟件模塊的可復用性、可維護性和可擴展性,顯著提升應用軟件的計算效率,使得應用領域專家可以在無需了解計算機復雜體系結構的前提下,串行編程地研發(fā)并行應用軟件,適應復雜實際應用的數(shù)值模擬需求變化和高性能計算機體系結構的復雜化。
[0005]本發(fā)明實施例提供了一種并行計算構件,包括,
[0006]并行計算構件接口,用于為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù);
[0007]所述數(shù)據(jù)分布存儲單元,用于在進程的私有內存空間存儲數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù);
[0008]所述數(shù)據(jù)并行通信單元,用于從其他進程的私有內存空間的數(shù)據(jù)場中復制數(shù)值并行計算單元依賴的網格單元及網格單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求;
[0009]所述數(shù)值并行計算單元,用于根據(jù)數(shù)值算法的數(shù)值模擬計算流程,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
[0010]本發(fā)明實施例還提供了一種并行計算構件的生成方法,包括,
[0011]確定并行計算接口的輸入和輸出,為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù);
[0012]根據(jù)數(shù)值算法的格式確定數(shù)據(jù)分布存儲單元在進程的私有內存空間存儲的數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù);
[0013]確定數(shù)據(jù)并行通信單元從其他進程的私有內存空間的數(shù)據(jù)場中復制的網格單元和網格單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求;
[0014]確定數(shù)值并行計算單元的計算邏輯,編寫進程執(zhí)行的串行子程序,注冊到數(shù)值并行計算單元,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
[0015]本發(fā)明實施例還提供了一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,包括,
[0016]根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量值數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間;
[0017]根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟,根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系;
[0018]根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
[0019]本發(fā)明實施例還提供了一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)系統(tǒng),包括,
[0020]數(shù)據(jù)場分布存儲單元,用于根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間;
[0021]數(shù)值模擬計算流程確定單元,根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟;
[0022]并行計算構件確定單元,用于根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系;
[0023]并行計算構件組裝單元,用于根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
[0024]通過上述實施例的方法和系統(tǒng),可以顯著提升軟件模塊的可復用性、可維護性和可擴展性,顯著提升應用軟件的計算效率,使得應用領域專家可以在無需了解計算機復雜體系結構的前提下,串行編程地研發(fā)并行應用軟件,適應復雜實際應用的數(shù)值模擬需求變化和高性能計算機體系結構的復雜化。

【專利附圖】

【附圖說明】
[0025]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。在附圖中:
[0026]圖1所示為本發(fā)明實施例一種并行計算構件的結構示意圖;
[0027]圖2所示為本發(fā)明實施例一種并行計算構件的生成方法的流程圖;
[0028]圖3所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法的流程圖;
[0029]圖4所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)系統(tǒng)的結構示意圖;
[0030]圖5給出了一個計算區(qū)域的示意圖;
[0031]圖6所示為本發(fā)明實施例以“迎風離散格式數(shù)值并行計算構件”為例說明鄰居交換通用數(shù)值計算構件的生成過程流程圖;
[0032]圖7所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法的另一個流程圖;
[0033]圖8所示為本發(fā)明實施例前述三維線性對流方程并行數(shù)值求解的一個計算流程拓撲。

【具體實施方式】
[0034]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚明白,下面結合附圖對本發(fā)明實施例做進一步詳細說明。在此,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
[0035]如圖1所示為本發(fā)明實施例一種并行計算構件的結構示意圖。
[0036]包括并行計算構件接口 101,數(shù)據(jù)分布存儲單元102,數(shù)據(jù)并行通信單元103,數(shù)值并行計算單元104。
[0037]所述并行計算構件接口 101,用于為數(shù)據(jù)分布存儲單元102、數(shù)據(jù)并行通信單元103和數(shù)值并行計算單元104提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù)。
[0038]其中,數(shù)據(jù)場包含離散網格和定義在網格上的物理量值,依據(jù)離散網格在各個進程之間的區(qū)域剖分,分布存儲在相應進程的私有內存空間;計算參數(shù)包含獨立于離散網格的控制參數(shù)和物理參數(shù),計算參數(shù)通常由各個進程共享。
[0039]所述數(shù)據(jù)分布存儲單元102,用于在進程的私有內存空間存儲數(shù)據(jù)場和從并行計算構件接口 101接收的數(shù)值數(shù)據(jù)。
[0040]所述數(shù)據(jù)并行通信單元103,用于從其他進程的私有內存空間的數(shù)據(jù)場中復制數(shù)值并行計算單元104依賴的網格單元及單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元104的數(shù)據(jù)依賴需求。
[0041]這些操作需要與其他進程進行數(shù)據(jù)通信才可能完成,而所有進程之間的數(shù)據(jù)通信是可以并行執(zhí)行的。
[0042]所述數(shù)值并行計算單元104,用于根據(jù)數(shù)值算法的數(shù)值模擬計算流程,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
[0043]其中,數(shù)值并行計算單元104在各個進程之間是獨立并行計算的。
[0044]作為本發(fā)明的一個優(yōu)選的實施例,所述并行計算構件接口進一步包括,輸入接口和輸出接口,所述輸入接口用于為所述數(shù)據(jù)分布存儲單元102、數(shù)據(jù)并行通信單元103和數(shù)值并行計算單元104提供數(shù)值數(shù)據(jù);所述輸出接口用于輸出所述并行計算構件處理后的數(shù)值數(shù)據(jù)。
[0045]作為本發(fā)明的一個優(yōu)選的實施例,所述計算參數(shù)由各個進程共享,數(shù)據(jù)場按網格區(qū)域分解,以網格片為單位,分布存儲在各個進程的私有內存空間。
[0046]作為本發(fā)明的一個優(yōu)選的實施例,所述數(shù)據(jù)并行通信單元103的并行通信類型包括:鄰居交換類型、全局規(guī)約類型、稀疏規(guī)約類型和有向掃描類型。在本發(fā)明實施例中包括但不限于上述通信類型,在本領域中的通信類型均應當被理解為可以應用到本發(fā)明技術方案中。
[0047]作為本發(fā)明的一個優(yōu)選的實施例,所述數(shù)值并行計算單元104的并行計算類型包括:物理量調內存、物理量賦初值、通用數(shù)值計算、時間步長計算和物理量存新值。在本發(fā)明實施例中包括但不限于上述并行計算類型,在本領域中的并行計算類型均應當被理解為可以應用到本發(fā)明技術方案中。
[0048]作為本發(fā)明的一個優(yōu)選的實施例,所述數(shù)值并行計算單元104為可獨立配置以完成不同的數(shù)值算法的數(shù)值計算功能。
[0049]通過上述實施例中的構件,可以將針對不同的數(shù)值算法生成不同的并行計算構件,在并行計算構件中并行計算構件接口,數(shù)據(jù)分布存儲單元,數(shù)據(jù)并行通信單元均可以通用或者進行小規(guī)模的修改,數(shù)值并行計算單元可以由應用軟件研發(fā)專家根據(jù)實際應用的個性化需求,根據(jù)數(shù)值算法串行編程來實例化。數(shù)值算法不同,數(shù)值并行計算單元也可以不同,但數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元是一致的。從而,通過復用數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元,并行計算構件可以適應不同類型的數(shù)值算法和不同數(shù)值算法軟件模塊的快速集成,提升軟件模塊的可復用能力。
[0050]如圖2所示為本發(fā)明實施例一種并行計算構件的生成方法的流程圖。
[0051]包括步驟201,確定并行計算接口的輸入和輸出,為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù)。
[0052]步驟202,根據(jù)數(shù)值算法的格式確定數(shù)據(jù)分布存儲單元在進程的私有內存空間存儲的數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù)。
[0053]步驟203,確定數(shù)據(jù)并行通信單元從其他進程的私有內存空間的數(shù)據(jù)場中復制的網格單元和所述網格單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求。
[0054]步驟204,確定數(shù)值并行計算單元的計算邏輯,編寫進程執(zhí)行的串行子程序,注冊到數(shù)值并行計算單元,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
[0055]作為本發(fā)明的一個優(yōu)選的實施例,所述計算參數(shù)由各個進程共享,數(shù)據(jù)場按網格區(qū)域分解,以網格片為單位,分布存儲在各個進程的私有內存空間。
[0056]作為本發(fā)明的一個優(yōu)選的實施例,所述數(shù)據(jù)并行通信單元中的并行通信類型包括:鄰居交換類型、全局規(guī)約類型、稀疏規(guī)約類型和有向掃描類型。在本發(fā)明實施例中包括但不限于上述通信類型,在本領域中的通信類型均應當被理解為可以應用到本發(fā)明技術方案中。
[0057]作為本發(fā)明的一個優(yōu)選的實施例,所述數(shù)值并行計算單元中的并行計算類型包括:物理量調內存、物理量賦初值、通用數(shù)值計算、時間步長計算和物理量存新值。在本發(fā)明實施例中包括但不限于上述并行計算類型,在本領域中的并行計算類型均應當被理解為可以應用到本發(fā)明技術方案中。
[0058]通過上述實施例中方法生成的構件,可以將針對不同的數(shù)值算法生成不同的并行計算構件,在并行計算構件中并行計算構件接口,數(shù)據(jù)分布存儲單元,數(shù)據(jù)并行通信單元均可以通用或者進行小規(guī)模的修改,數(shù)值并行計算單元可以由應用軟件研發(fā)專家根據(jù)實際應用的個性化需求,根據(jù)數(shù)值算法串行編程來實例化。數(shù)值算法不同,數(shù)值并行計算單元也可以不同,但數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元是一致的。從而,通過復用數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元,并行計算構件可以適應不同類型的數(shù)值算法和不同數(shù)值算法軟件模塊的快速集成,提升軟件模塊的可復用能力。
[0059]如圖3所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法的流程圖。
[0060]包括步驟301,根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量值數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間。
[0061]步驟302,根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟,根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系。
[0062]其中,所述的并行計算功能是指數(shù)值模擬功能的一次通信及計算合并為一個并行計算功能。
[0063]步驟303,根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
[0064]作為本發(fā)明的一個優(yōu)選的實施例,所述離散網格包括結構網格或者非結構網格,所述數(shù)據(jù)場包括坐標系的選擇、離散網格的生成、物理量的聲明;所述生成離散網格上的物理量數(shù)據(jù)包括,在離散網格的不同幾何位置生成所述物理量數(shù)據(jù)。
[0065]作為本發(fā)明的一個優(yōu)選的實施例,所述不同幾何位置包括,離散網格的單元中心、離散網格的單元節(jié)點、離散網格的單元邊心、網格片外表邊邊心、網格片外表棱棱心、網格片外表面面心。
[0066]作為本發(fā)明的一個優(yōu)選的實施例,根據(jù)所述并行計算功能確定對應的并行計算構件進一步包括,從并行計算構件庫中選擇數(shù)值算法的格式與所述并行計算功能對應的并行計算構件,如果所述并行計算構件庫中沒有與所述并行計算功能對應的并行計算構件,則生成數(shù)值算法的格式對應于所述并行計算功能的并行計算構件,并加入到所述并行計算構件庫中。
[0067]作為本發(fā)明的一個優(yōu)選的實施例,所述生成數(shù)值算法的格式對應于所述并行計算功能的并行計算構件進一步包括,確定并行計算接口的輸入和輸出,為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù);根據(jù)數(shù)值算法的格式確定數(shù)據(jù)分布存儲單元在進程的私有內存空間存儲的數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù);確定數(shù)據(jù)并行通信單元從其他進程的私有內存空間的數(shù)據(jù)場中復制的網格單元和單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求;確定數(shù)值并行計算單元的計算邏輯,編寫進程執(zhí)行的串行子程序,注冊到數(shù)值并行計算單元,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
[0068]作為本發(fā)明的一個優(yōu)選的實施例,根據(jù)所述所有的并行計算構件及其連接關系組裝所述并行計算構件進一步包括,根據(jù)所述所有的并行計算構件及其連接關系,將所有的并行計算構件進行連接,并實例化所述并行計算構件中的數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元、數(shù)值并行計算單元,對所述并行計算構件進行配置和定義。
[0069]通過上述本發(fā)明實施例的方法,可以顯著提升軟件模塊的可復用性、可維護性和可擴展性,顯著提升應用軟件的計算效率,使得應用領域專家可以在無需了解計算機復雜體系結構的前提下,串行編程地研發(fā)并行應用軟件,適應復雜實際應用的數(shù)值模擬需求變化和高性能計算機體系結構的復雜化。
[0070]如圖4所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)系統(tǒng)的結構示意圖。
[0071]包括數(shù)據(jù)場分布存儲單元401,用于根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間。
[0072]數(shù)值模擬計算流程確定單元402,根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟。
[0073]并行計算構件確定單元403,用于根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系。
[0074]并行計算構件組裝單元404,用于根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
[0075]作為本發(fā)明的一個優(yōu)選的實施例,并行計算構件組裝單元404進一步包括,配置子單元4041,組裝子單元4042,代碼生成子單元4043 ;
[0076]所述配置子單元4041,用于對各個并行計算構件進行配置和定義;
[0077]組裝子單元4042,用于根據(jù)所述所有的并行計算構件及其連接關系,將所有的并行計算構件進行連接;
[0078]代碼生成子單元4043,用于實例化所述并行計算構件中的數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元、數(shù)值并行計算單元。
[0079]通過上述本發(fā)明實施例的系統(tǒng),可以顯著提升軟件模塊的可復用性、可維護性和可擴展性,顯著提升應用軟件的計算效率,使得應用領域專家可以在無需了解計算機復雜體系結構的前提下,串行編程地研發(fā)并行應用軟件,適應復雜實際應用的數(shù)值模擬需求變化和高性能計算機體系結構的復雜化。
[0080]如圖1所示的實施例中,并行計算構件接口 101為數(shù)據(jù)分布存儲單元102、數(shù)據(jù)并行通信單元103和數(shù)值并行計算單元104提供數(shù)值數(shù)據(jù)并返回經過數(shù)值并行計算處理后的數(shù)值數(shù)據(jù)。這里,數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù),其中,數(shù)據(jù)場包含離散網格和定義在網格上的物理量值,計算參數(shù)包含獨立于離散網格的控制參數(shù)和物理參數(shù)。
[0081]并行計算構件接口是并行計算構件獲取數(shù)值數(shù)據(jù)或與用戶界面進行信息交互的窗P。
[0082]所述用戶界面指數(shù)值模擬在當前數(shù)值并行計算步驟輸入或輸出的數(shù)值計算模型和數(shù)值計算參數(shù)。
[0083]所述并行計算構件接口包含并行計算構件輸入接口和并行計算構件輸出接口,所述并行計算構件輸入接口為數(shù)據(jù)分布存儲單元102、數(shù)據(jù)并行通信單元103和數(shù)值并行計算單元104提供數(shù)值數(shù)據(jù),并行計算構件輸出接口提供并行計算構件處理后的數(shù)值數(shù)據(jù)。
[0084]數(shù)據(jù)分布存儲單元102,用于在進程的私有內存空間存儲數(shù)據(jù)場,并從并行計算構件接口 101接收的數(shù)值數(shù)據(jù)。數(shù)值數(shù)據(jù)中,計算參數(shù)通常由各個進程共享,數(shù)據(jù)場按網格區(qū)域分解,以網格片為單位,分布存儲在各個進程的私有內存空間。圖5給出了一個計算區(qū)域的示意圖,被離散為20x20個單元的網格,網格被剖分為7個網格片,其中,第0、1、3、4號網格片分布存儲到第O號進程的私有內存空間,第2、5、6號網格片分布存儲到第I號進程的私有內存空間,其中,網格片表示網格剖分后形成的子區(qū)域,包含該子區(qū)域的所有網格單元和定義在網格單元上的所有物理量值。
[0085]數(shù)據(jù)并行通信單元103,用于從其他進程的私有空間復制數(shù)據(jù),這些數(shù)據(jù)通常需要通過通信,傳輸并存儲到本地進程的私有內存空間,滿足數(shù)值并行計算單元104的數(shù)據(jù)依賴需求。數(shù)據(jù)并行通信單元103在各個進程之間的通信是可以并行執(zhí)行的。以圖5中第O號進程的第3號網格片為例,數(shù)值并行計算通常需要鄰居的第0、1、4、2、6號網格片提供邊界網格單元的物理量值,其中,第0、1、4號網格片的數(shù)據(jù)可以通過本地內存訪問獲得,而第2、6號網格片的數(shù)據(jù)只能通過與第I號進程的數(shù)據(jù)通信才能獲得。
[0086]數(shù)值并行計算單元104,根據(jù)應用個性的數(shù)值算法,對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算處理后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口 101。以圖5中的7個網格片為例,第O號進程依次遍歷第0、1、3、4號網格片,第I號進程類似地遍歷第2、5、6號網格片,在每個網格片上調用數(shù)值計算子程序進行計算,處理相應網格片上網格和物理量值,兩個進程是完全獨立并行計算的。這里,所述數(shù)值計算子程序指根據(jù)應用個性的數(shù)值算法編寫的串行子程序。數(shù)值并行計算單元104執(zhí)行之前,通常需要數(shù)據(jù)并行通信單元103執(zhí)行一次數(shù)據(jù)通信。
[0087]數(shù)據(jù)并行通信和數(shù)值并行計算可以用計算機偽語言的方式表達,也可以用自然語言形式表達,無論是偽語言的方式,還是自然語言的形式,都有嚴格的并行計算語法要求。
[0088]并行計算構件通過特定的數(shù)據(jù)并行通信類型和數(shù)值并行計算類型表達具體的計算內容。在并行計算構件設計過程中,凡是涉及到數(shù)據(jù)并行通信或數(shù)值并行計算之處,均需使用類型集合中的類型。優(yōu)選地,本發(fā)明實施例中,所述數(shù)據(jù)并行通信單元103使用如下數(shù)據(jù)并行通信類型:
[0089]鄰居交換類型:沿網格片的邊界網格單元,從相鄰網格片復制網格結點坐標和網格單元物理量值,存儲到邊界網格單元的相應內存地址;
[0090]全局歸約類型:遍歷所有網格片的所有網格單元,為物理量求歸約值,包括最大值、最小值、累加和等;
[0091]稀疏歸約類型:圍繞某個局部區(qū)域,遍歷覆蓋該區(qū)域的網格片的網格單元,為物理量求歸約值,包括最大值、最小值、累加和等;
[0092]有向掃描類型:按網格單元之間的有向數(shù)據(jù)依賴關系,遍歷所有網格片的所有網格單元,引用相鄰網格單元的網格結點坐標和物理量值,完成當前網格單元的數(shù)值計算。
[0093]優(yōu)選地,本發(fā)明實施例中,數(shù)值并行計算單元104使用如下數(shù)值并行計算類型:
[0094]物理量調內存:遍歷網格片,為網格結點坐標或網格單元物理量值申請或釋放內存空間,內存空間用于存儲網格結點坐標的浮點值,或者物理量的浮點或定點值;期間,所有進程可以獨立并行執(zhí)行。
[0095]物理量賦初值:遍歷網格片,逐個網格單元地為網格結點坐標或網格單元物理量值賦初值,初值包括浮點值和定點值;期間,所有進程可以獨立并行執(zhí)行。
[0096]通用數(shù)值計算:遍歷網格片,依據(jù)應用個性的數(shù)值算法的執(zhí)行邏輯,逐個網格單元地對網格結點坐標或物理量值進行浮點或定點運算;所有進程可以獨立并行執(zhí)行。
[0097]時間步長計算:遍歷網格片,依據(jù)應用個性的時間步長數(shù)值算法的執(zhí)行邏輯,逐個網格單元地計算時間步長,求所有網格單元時間步長的最小值并返回;期間,所有進程可以獨立并行執(zhí)行。
[0098]物理量存新值:遍歷網格片,逐個網格單元地更新網格結點坐標或網格單元物理量值為當前最新的數(shù)值計算結果,為下一次數(shù)值并行計算做準備。
[0099]并行計算構件是通過對數(shù)值模擬并行應用軟件所采用的數(shù)值算法的模擬功能的抽象而形成的。針對分布存儲的離散網格和物理量值等數(shù)值數(shù)據(jù),并行計算構件通過數(shù)值并行通信和數(shù)值并行計算的配置,可以獨立地對數(shù)值數(shù)據(jù)進行處理,完成相應的數(shù)值計算功能。從而,在數(shù)值算法的不同步驟,可以獨立地創(chuàng)建和配置不同的并行計算構件,由這些構件可以構建數(shù)值模擬并行應用軟件。
[0100]三維線性對流方程是數(shù)值模擬中需要求解的一類典型方程。確定求解三維線性對流方程的數(shù)值算法為迎風離散格式,根據(jù)該格式,確定數(shù)據(jù)并行通信類型為鄰居交換類型,數(shù)值并行計算類型為通用數(shù)值計算類型,從而確定并行計算構件的類型為鄰居交換通用數(shù)值計算構件。如圖6所示為本發(fā)明實施例以“迎風離散格式數(shù)值并行計算構件”為例說明鄰居交換通用數(shù)值計算構件的生成過程流程圖。
[0101]步驟601,確定數(shù)值并行計算中迎風離散格式中并行計算接口的輸入和輸出,確定待輸入的數(shù)值數(shù)據(jù)為迎風離散格式依賴的上一個離散物理時刻的物理量值和計算參數(shù),確定待輸出的數(shù)值數(shù)據(jù)為迎風離散格式執(zhí)行后反饋的當前物理時刻的物理量值和計算參數(shù)。
[0102]步驟602,將離散網格和定義在離散網格上的物理量值存儲入數(shù)據(jù)分布存儲單元。
[0103]步驟603,根據(jù)迎風離散格式中網格片之間的數(shù)據(jù)依賴關系,為網格片確定需要從鄰居網格片網格單元上復制的上一個物理時刻的物理量值,并將物理量注冊到并行計算構件的數(shù)據(jù)并行通信單元中。所有進程的數(shù)據(jù)并行通信是可以獨立并行執(zhí)行的。
[0104]步驟604,根據(jù)迎風離散格式的數(shù)值算法邏輯,為網格片編寫串行子程序,注冊到并行計算構件的數(shù)值并行計算單元。所有進程的數(shù)值并行計算是可以獨立并行執(zhí)行的。
[0105]三維線性對流方程的迎風離散格式數(shù)值并行計算構件制作完畢,可以存儲到并行計算構件庫中。根據(jù)數(shù)值模擬并行應用軟件的數(shù)值算法流程和功能的需求,通過所述并行計算構件庫對已創(chuàng)建的并行計算構件進行集中保存和管理。
[0106]如圖7所示為本發(fā)明實施例一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法的另一個流程圖。
[0107]包括步驟701,根據(jù)并行應用軟件的數(shù)值模擬應用對象,生成離散網格和離散網格上的物理量值數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間。
[0108]具體的,生成離散網格并進行網格區(qū)域剖分,將剖分后的所有子區(qū)域(含子區(qū)域上的所有網格單元)分配到各個進程;各個進程在各自擁有的子區(qū)域上,為網格單元上生成物理量值,形成各自的數(shù)值模擬數(shù)據(jù)場,存儲到私有內存空間;所有進程私有內存空間的數(shù)值模擬數(shù)據(jù)場聚集到一起,共同構成分布存儲的數(shù)值模擬數(shù)據(jù)場,即前述數(shù)據(jù)分布存儲單元所述數(shù)值數(shù)據(jù)的數(shù)據(jù)場。
[0109]數(shù)據(jù)場包含坐標系的選擇、離散網格的生成、物理量的聲明,其中,離散網格可以是結構網格,也可以是非結構網格;物理量可以定義在離散網格的不同幾何位置,包括單元中心、單元節(jié)點、單元邊心、網格片外表邊邊心、網格片外表棱棱心、網格片外表面面心等。
[0110]步驟702,根據(jù)并行應用軟件所采用的數(shù)值算法的數(shù)值模擬功能,確定待實現(xiàn)的所有并行計算功能,確定由所有并行計算功能構成的計算流程拓撲。
[0111]所述并行計算功能實現(xiàn)步驟指在該步驟中,數(shù)據(jù)并行通信在各個進程之間至多執(zhí)行一次,數(shù)值并行計算在各個進程之間是獨立執(zhí)行的,將算法流程中的一次通信及其相應的計算合并成為一個并行計算功能。連接這些并行計算功能,構成計算流程拓撲。
[0112]一個計算流程拓撲包含三部分內容,其一是數(shù)值數(shù)據(jù)的初始化,其二是數(shù)值數(shù)據(jù)的數(shù)值計算,其三是數(shù)值數(shù)據(jù)的存儲。初始化為數(shù)值數(shù)據(jù)賦初值,數(shù)值計算依據(jù)數(shù)值算法的模擬功能依次處理數(shù)值數(shù)據(jù),存儲保存經過數(shù)值計算處理后的數(shù)值數(shù)據(jù)。其中,數(shù)值計算可以根據(jù)數(shù)值算法的模擬功能,細化到具體的并行計算功能,直到每項并行計算功能至多需要在進程之間執(zhí)行一次數(shù)值并行通信,從而可以獨立地構建一個并行計算構件。
[0113]步驟703,根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系。
[0114]具體的,并行應用軟件的計算流程拓撲確定之后,所有并行計算功能就確定了,每項并行計算功能可作為一個步驟,再結合數(shù)值算法的執(zhí)行邏輯,并行應用軟件的實現(xiàn)步驟就確定了。圖8顯示的是前述三維線性對流方程并行數(shù)值求解的一個計算流程拓撲。由計算流程拓撲確定,要實現(xiàn)方程的并行數(shù)值求解,需要執(zhí)行三個步驟,包括:初始化、時間步進和接收數(shù)值解。其中,初始化細分為物理量申請內存空間(步驟803)和物理量賦初值(步驟804)的兩個子步驟;時間步進細分為時間步長的計算(步驟805)、按時間步長積分一個時間步(步驟808)、更新時間步(步驟809)的三個子步驟;接收數(shù)值解包含在重要物理時刻存儲數(shù)值解以方便物理分析(步驟810)和物理量釋放內存空間(步驟811)的兩個子步驟。所述“按時間步積分一個時間步”又可以分解為計算網格數(shù)值通量(步驟806)、更新網格物理量值(步驟807)的兩個子步驟。由此,并行數(shù)值求解三維線性對流方程的計算流程拓撲包含8項并行計算功能,再結合數(shù)值算法的執(zhí)行邏輯,并行應用軟件的8個實現(xiàn)步驟已經確定了。
[0115]并行應用軟件的實現(xiàn)步驟確定之后,可以確定并行計算構件和各個并行計算構件之間的連接關系。
[0116]首先,根據(jù)計算流程拓撲中的實現(xiàn)步驟,確定各個步驟所對應的并行計算構件,然后根據(jù)各個步驟之間邏輯關系確定各個并行計算構件之間的連接關系。
[0117]仍然以前述三維線性對流方程的計算流程拓撲為例。物理量申請內存空間(步驟803)可以由物理量調內存的數(shù)值并行計算類型的并行計算構件完成,標記為Al ;物理量賦初值(步驟804)可以由物理量賦初值的數(shù)值并行計算類型的并行計算構件完成,標記為A2 ;時間步長的計算(步驟805)可以由時間步長計算的數(shù)值并行計算類型的并行計算構件完成,標記為A3 ;計算網格數(shù)值通量(步驟806)可以由前述迎風離散格式數(shù)值并行計算構件來完成,標記為A4 ;更新網格物理量(步驟807)可以由通用數(shù)值計算類型的并行計算構件完成,標記為A5;更新時間步(步驟809)由物理量存新值的數(shù)值計算類型的并行計算構件完成,標記為A6 ;接收數(shù)值解(步驟810)可以由物理量存新值的數(shù)值計算類型的并行計算構件和物理量調內存的數(shù)值計算類型的并行計算構件共同完成,分別標記為A7和AS。物理量釋放內存空間(步驟811)可以由物理量調內存的數(shù)值計算類型的并行計算構件完成,標記為A9。其中步驟803、步驟810和步驟811可以復用物理量調內存的數(shù)值計算類型的并行計算構件。
[0118]根據(jù)前述計算流程拓撲的實現(xiàn)步驟的邏輯關系,可以確定8個并行計算構件之間的連接關系。并行計算構件Al以步驟701形成的數(shù)值數(shù)據(jù)為輸入,為物理量在網格片上申請內存空間,存儲物理量的值;并行計算構件A2以并行計算構件Al輸出的數(shù)值數(shù)據(jù)作為輸入,為具備內存空間的物理量賦初值;并行計算構件A3以并行計算構件A2處理后的數(shù)值數(shù)據(jù)作為輸入,依據(jù)求解時間步長的數(shù)值算法,計算時間步長;并行計算構件A4以并行計算構件A3處理后的數(shù)值數(shù)據(jù)作為輸入,依據(jù)迎風離散格式的數(shù)值算法,計算網格數(shù)值通量;并行計算構件A5以并行計算構件A4處理后的數(shù)值數(shù)據(jù)和網格數(shù)值通量作為輸入,依據(jù)更新物理量的數(shù)值算法,更新物理量的值;并行計算構件A6以并行計算構件A5處理后的數(shù)值數(shù)據(jù)作為輸入,存儲當前物理時刻的物理量的值;并行計算構件A7和AS存儲并行計算構件A6存儲的當前物理時刻的數(shù)值數(shù)據(jù)到外存空間,并行計算構件A9釋放并行計算構件A2申請的內存空間。
[0119]并行計算構件可以從預先建立的并行計算構件庫中選取。如果并行計算構件無法從并行計算構件庫中獲取,則可以創(chuàng)建臨時并行計算構件,具體創(chuàng)建方法可以參考前述生成構件的方法,為臨時并行計算構件進行數(shù)值計算功能描述。待臨時并行計算構件使用成熟后,將其轉為成熟的并行計算構件,添加到并行計算構件庫中,供后續(xù)并行應用軟件的研發(fā)使用。
[0120]步驟704,根據(jù)所述連接關系組裝并行計算構件以形成與待實現(xiàn)數(shù)值模擬功能對應的并行應用軟件。
[0121]如前所述,此時已經確定了待實現(xiàn)模擬功能所需的并行計算構件和并行計算構件之間的連接關系,根據(jù)所述連接關系將各個并行計算構件進行組裝即可生成與待實現(xiàn)模擬功能相對應的應用軟件。
[0122]組裝并行計算構件是指在計算流程拓撲中明確的并行計算構件確定完畢,并在并行計算構件庫中沒有的并行計算構件也制作完畢之后,按照計算流程拓撲確定的各個并行計算構件之間的連接關系,對各個并行計算構件進行技術要素的配置和定義,包括:屬性數(shù)據(jù)的修改、輸入輸出參數(shù)值定義等,為完成應用軟件生成做技術準備。
[0123]當完成并行計算構件組裝后,執(zhí)行“生成代碼”操作,可根據(jù)系統(tǒng)代碼生成的規(guī)則和要素,依據(jù)并行計算構件,自動生成與LINUX操作系統(tǒng)相對應的并行源代碼。對于其他系統(tǒng)的代碼生成也同樣應被理解為本發(fā)明技術方案中的一部分。
[0124]在本發(fā)明的一實施例中,生成的代碼可以根據(jù)地址配置信息,直接生成到指定的服務器的物理路徑之下。
[0125]優(yōu)選地,在本發(fā)明的另一實施例中,生成的代碼可直接編譯運行。
[0126]至此,生成了與待實現(xiàn)模擬功能相對應的數(shù)值模擬應用軟件。
[0127]并行計算時,數(shù)據(jù)場已經分布存儲在各個進程的私有內存空間;數(shù)據(jù)分布存儲單元為并行計算構件管理存儲在進程私有空間的數(shù)據(jù)場,數(shù)據(jù)并行通信單元為并行計算構件從其他進程私有空間復制數(shù)值并行計算所依賴的非本地進程私有空間存儲的網格單元和物理量值,數(shù)值并行計算單元獨立地執(zhí)行實際應用個性的數(shù)值算法,處理進程私有空間的數(shù)據(jù)場;并行計算構件接口對外僅輸入和輸出計算參數(shù)和分布存儲的數(shù)據(jù)場。從而,并行計算構件屏蔽了數(shù)據(jù)場的分布存儲,封裝了數(shù)值并行計算所需的數(shù)據(jù)并行通信,支持領域專家在無需了解并行計算實現(xiàn)的前提下,串行編程地實現(xiàn)數(shù)值模擬計算流程拓撲中的并行計算功能實現(xiàn)步驟。
[0128]離散網格子區(qū)域和定義在網格單元的物理值等數(shù)據(jù)場可以結合高性能計算機體系結構的高性能特征進行優(yōu)化設計,數(shù)據(jù)并行通信以及相應的數(shù)值計算負載平衡可以由專業(yè)的高性能計算專家來實現(xiàn),從而,并行計算構件具有更高的計算效率,更適應于大規(guī)模并行計算。
[0129]高性能計算機體系結構發(fā)生變化,只需重新設計或優(yōu)化設計數(shù)據(jù)場的分布存儲結構、數(shù)據(jù)并行通信單元,無需更改并行計算構件接口、數(shù)據(jù)并行存儲單元和數(shù)值并行計算單元,以及應用軟件的數(shù)值模擬計算流程拓撲,從而,計算構件和應用軟件可以快速適應高性能計算機體系結構的復雜化。
[0130]在并行計算構件的內部,數(shù)值并行計算單元可以由應用軟件研發(fā)專家根據(jù)實際應用的個性化需求,根據(jù)數(shù)值算法串行編程來實例化。數(shù)值算法不同,數(shù)值并行計算單元也可以不同,但數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元是一致的。例如,在前述迎風離散格式數(shù)值并行計算構件的生成中,迎風離散格式可以不同,但這些格式的并行計算接口、數(shù)據(jù)分布存儲和數(shù)據(jù)并行通信可以一致。從而,通過復用數(shù)值數(shù)據(jù)、數(shù)據(jù)分布存儲單元和數(shù)據(jù)并行通信單元,并行計算構件可以適應不同類型的數(shù)值算法和不同數(shù)值算法軟件模塊的快速集成,提升軟件模塊的可復用能力。
[0131]數(shù)值模擬流程拓撲可以根據(jù)應用軟件的待實現(xiàn)數(shù)值模擬功能定制,所有并行計算構件可以獨立地動態(tài)構造,即使在并行計算構件的內部,數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元也可以獨立地設計和實現(xiàn),所有并行計算構件和并行計算構件的內部部件均可以由不同的個人或團隊獨立完成,因此,基于并行計算構件的并行應用軟件研發(fā)方法可以顯著提升代碼的可維護和可擴展能力,更好地適應實際應用的需求變化。
[0132]以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種并行計算構件,其特征在于包括, 并行計算構件接口,用于為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù); 所述數(shù)據(jù)分布存儲單元,用于在進程的私有內存空間存儲數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù); 所述數(shù)據(jù)并行通信單元,用于從其他進程的私有內存空間的數(shù)據(jù)場中復制數(shù)值并行計算單元依賴的網格單元及網格單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求; 所述數(shù)值并行計算單元,用于根據(jù)數(shù)值算法的數(shù)值模擬計算流程,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
2.一種并行計算構件的生成方法,其特征在于包括, 確定并行計算接口的輸入和輸出,為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù); 根據(jù)數(shù)值算法的格式確定數(shù)據(jù)分布存儲單元在進程的私有內存空間存儲的數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù); 確定數(shù)據(jù)并行通信單元從其他進程的私有內存空間的數(shù)據(jù)場中復制的網格單元和網格單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求; 確定數(shù)值并行計算單元的計算邏輯,編寫進程執(zhí)行的串行子程序,注冊到數(shù)值并行計算單元,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
3.一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,其特征在于包括, 根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量值數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間; 根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟,根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系; 根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
4.根據(jù)權利要求3所述的一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,其特征在于,根據(jù)所述并行計算功能確定對應的并行計算構件進一步包括,從并行計算構件庫中選擇數(shù)值算法的格式與所述并行計算功能對應的并行計算構件,如果所述并行計算構件庫中沒有與所述并行計算功能對應的并行計算構件,則生成數(shù)值算法的格式對應于所述并行計算功能的并行計算構件,并加入到所述并行計算構件庫中。
5.根據(jù)權利要求4所述的一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,其特征在于,所述生成數(shù)值算法的格式對應于所述并行計算功能的并行計算構件進一步包括,確定并行計算接口的輸入和輸出,為數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元和數(shù)值并行計算單元提供數(shù)值數(shù)據(jù)并返回經過數(shù)值計算處理后的數(shù)值數(shù)據(jù),所述數(shù)值數(shù)據(jù)主要包含數(shù)據(jù)場和計算參數(shù);根據(jù)數(shù)值算法的格式確定數(shù)據(jù)分布存儲單元在進程的私有內存空間存儲的數(shù)據(jù)場和從并行計算構件接口接收的數(shù)值數(shù)據(jù);確定數(shù)據(jù)并行通信單元從其他進程的私有內存空間的數(shù)據(jù)場中復制的網格單元和單元上的物理量值,存儲到本地進程,滿足數(shù)值并行計算單元的數(shù)據(jù)依賴需求;確定數(shù)值并行計算單元的計算邏輯,編寫進程執(zhí)行的串行子程序,注冊到數(shù)值并行計算單元,獨立的對本地進程的數(shù)值數(shù)據(jù)進行數(shù)值計算,并將數(shù)值計算后的數(shù)值數(shù)據(jù)傳送給并行計算構件接口。
6.根據(jù)權利要求3所述的一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,其特征在于,所述的并行計算功能是指數(shù)值模擬功能的一次通信及計算合并為一個并行計算功能。
7.根據(jù)權利要求3所述的一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)方法,其特征在于,根據(jù)所述所有的并行計算構件及其連接關系組裝所述并行計算構件進一步包括,根據(jù)所述所有的并行計算構件及其連接關系,將所有的并行計算構件進行連接,并實例化所述并行計算構件中的數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元、數(shù)值并行計算單元,對所述并行計算構件進行配置和定義。
8.一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)系統(tǒng),其特征在于包括, 數(shù)據(jù)場分布存儲單元,用于根據(jù)數(shù)值模擬的應用對象,生成離散網格和離散網格上的物理量數(shù)據(jù),形成數(shù)值模擬數(shù)據(jù)場,分布存儲到各個進程的私有內存空間; 數(shù)值模擬計算流程確定單元,根據(jù)所述數(shù)值模擬的應用對象待實現(xiàn)的數(shù)值模擬功能,確定多個并行計算功能的實現(xiàn)步驟; 并行計算構件確定單元,用于根據(jù)所述并行計算功能確定對應的并行計算構件,并根據(jù)所述實現(xiàn)步驟確定所述并行計算構件之間的連接關系; 并行計算構件組裝單元,用于根據(jù)所有的并行計算構件及其連接關系組裝所述并行計算構件,形成與待實現(xiàn)數(shù)值模擬功能一致的并行應用軟件。
9.根據(jù)權利要求8所述的一種應用并行計算構件的數(shù)值模擬并行應用軟件開發(fā)系統(tǒng),其特征在于,并行計算構件組裝單元進一步包括,配置子單元,組裝子單元,代碼生成子單元; 所述配置子單元,用于對各個并行計算構件進行配置和定義; 組裝子單元,用于根據(jù)所述所有的并行計算構件及其連接關系,將所有的并行計算構件進行連接; 代碼生成子單元,用于實例化所述并行計算構件中的數(shù)據(jù)分布存儲單元、數(shù)據(jù)并行通信單元、數(shù)值并行計算單元。
【文檔編號】G06F9/38GK104375806SQ201410662947
【公開日】2015年2月25日 申請日期:2014年11月19日 優(yōu)先權日:2014年11月19日
【發(fā)明者】莫則堯, 張愛清, 曹小林, 劉青凱, 徐小文, 廖麗 申請人:北京應用物理與計算數(shù)學研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河池市| 安宁市| 南召县| 尖扎县| 集安市| 合作市| 大同市| 永川市| 徐闻县| 古浪县| 工布江达县| 广宁县| SHOW| 高雄县| 岳普湖县| 工布江达县| 济南市| 黑河市| 上林县| 商丘市| 宝清县| 乐山市| 乐东| 治多县| 讷河市| 阿坝| 重庆市| 乳源| 封开县| 漠河县| 梁平县| 锡林浩特市| 尚志市| 侯马市| 名山县| 和田市| 浏阳市| 南丹县| 宁津县| 兴国县| 靖宇县|