仿真軟件的求解方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及計(jì)算機(jī)仿真技術(shù)領(lǐng)域,更具體地涉及一種仿真軟件的求解方法。
背景技術(shù)
[0002] 在仿真軟件的應(yīng)用過(guò)程中,隨著仿真模型的復(fù)雜度增加,對(duì)計(jì)算資源的需求也隨之增長(zhǎng),導(dǎo)致仿真計(jì)算的處理效率成為制約仿真技術(shù)發(fā)展的關(guān)鍵因素?,F(xiàn)有的仿真軟件在處理大規(guī)模、高復(fù)雜度的仿真計(jì)算時(shí),常常面臨計(jì)算效率低下、資源消耗大、等待時(shí)間長(zhǎng)等問(wèn)題,往往一個(gè)復(fù)雜的計(jì)算可能需要幾天甚至幾個(gè)月的時(shí)間,這些問(wèn)題嚴(yán)重影響了仿真軟件的應(yīng)用范圍和效果。
發(fā)明內(nèi)容
[0003] 鑒于上述問(wèn)題,本發(fā)明提供了一種利用CPU和GPU優(yōu)化矩陣構(gòu)建過(guò)程中的線程池任務(wù)分配與調(diào)度和內(nèi)存存儲(chǔ)過(guò)程的仿真軟件的求解方法。
[0004] 本發(fā)明提供了一種仿真軟件的求解方法,包括:調(diào)用中央處理器預(yù)處理仿真矩陣,得到坐標(biāo)格式子矩陣;坐標(biāo)格式子矩陣通過(guò)行索引數(shù)組、列索引數(shù)組和非零元素值數(shù)組表征;根據(jù)坐標(biāo)格式子矩陣的分布特征,調(diào)用中央處理器重新確定坐標(biāo)格式子矩陣的存儲(chǔ)格式,得到壓縮子矩陣的傳輸數(shù)據(jù);壓縮子矩陣至少包括坐標(biāo)格式子矩陣、稀疏行格式子矩陣和稀疏列格式子矩陣的其中之一;調(diào)用圖形處理器對(duì)壓縮子矩陣完成仿真求解。
[0005] 根據(jù)本發(fā)明的實(shí)施例,調(diào)用中央處理器預(yù)處理仿真矩陣,得到坐標(biāo)格式子矩陣,包括:調(diào)用中央處理器的主線程將仿真矩陣劃分為子矩陣并進(jìn)行索引標(biāo)記;將子矩陣分配至中央處理器線程池中的子線程以供將子矩陣存儲(chǔ)為坐標(biāo)格式子矩陣。
[0006] 根據(jù)本發(fā)明的實(shí)施例,根據(jù)坐標(biāo)格式子矩陣的分布特征,調(diào)用中央處理器重新確定坐標(biāo)格式子矩陣的存儲(chǔ)格式,得到壓縮子矩陣的傳輸數(shù)據(jù),包括:判斷坐標(biāo)格式子矩陣的稠密度是否大于預(yù)設(shè)閾值;其中,坐標(biāo)格式子矩陣的稠密度通過(guò)非零元素與元素總數(shù)的比值確認(rèn);若坐標(biāo)格式子矩陣的稠密度大于預(yù)設(shè)閾值,則判斷坐標(biāo)格式子矩陣的稠密類型;稠密類型至少包括行稠密矩陣和列稠密矩陣;若坐標(biāo)格式子矩陣為行稠密矩陣,則將坐標(biāo)格式子矩陣轉(zhuǎn)換為稀疏行格式子矩陣的傳輸數(shù)據(jù)以供圖形處理器生成壓縮子矩陣;若坐標(biāo)格式子矩陣為列稠密矩陣,則將坐標(biāo)格式子矩陣轉(zhuǎn)換為稀疏列格式子矩陣的傳輸數(shù)據(jù)以供圖形處理器生成壓縮子矩陣;若坐標(biāo)格式子矩陣的稠密度小于預(yù)設(shè)閾值,則將坐標(biāo)格式子矩陣作為壓縮子矩陣。
[0007] 根據(jù)本發(fā)明的實(shí)施例,判斷坐標(biāo)格式子矩陣的稠密類型,包括:針對(duì)坐標(biāo)格式子矩陣的每一行,求解行稠密度以供確定稠密行;稠密行為行稠密度大于坐標(biāo)格式子矩陣的稠密度的行;針對(duì)坐標(biāo)格式子矩陣的每一列,求解列稠密度以供確定稠密列;稠密列為列稠密度大于坐標(biāo)格式子矩陣的稠密度的列;判斷稠密行的數(shù)量是否大于稠密列的數(shù)量;若是,則坐標(biāo)格式子矩陣的稠密類型為行稠密矩陣;若否,則坐標(biāo)格式子矩陣的稠密類型為列稠密矩陣。
[0008] 根據(jù)本發(fā)明的實(shí)施例,將坐標(biāo)格式子矩陣轉(zhuǎn)換為稀疏行格式子矩陣的傳輸數(shù)據(jù)以供圖形處理器生成壓縮子矩陣,包括:根據(jù)行索引數(shù)組,確定每一行的非零元素的數(shù)量以供圖形處理器確認(rèn)行指針數(shù)組;利用每一行的非零元素的數(shù)量、列索引數(shù)組和非零元素值數(shù)組組成壓縮子矩陣的傳輸數(shù)據(jù)。
[0009] 根據(jù)本發(fā)明的實(shí)施例,將坐標(biāo)格式子矩陣轉(zhuǎn)換為稀疏列格式子矩陣的傳輸數(shù)據(jù)以供圖形處理器生成壓縮子矩陣,包括:根據(jù)列索引數(shù)組,確定每一列的非零元素的數(shù)量以供圖形處理器確認(rèn)列指針數(shù)組;利用行索引數(shù)組、每一列的非零元素的數(shù)量和非零元素值數(shù)組組成壓縮子矩陣的傳輸數(shù)據(jù)。
[0010] 根據(jù)本發(fā)明的實(shí)施例,調(diào)用圖形處理器對(duì)壓縮子矩陣完成仿真求解,包括:根據(jù)壓縮子矩陣的傳輸數(shù)據(jù),在圖形處理器的內(nèi)存中生成壓縮子矩陣;對(duì)壓縮子矩陣進(jìn)行仿真求解,得到運(yùn)算后的壓縮子矩陣;調(diào)用中央處理器判斷運(yùn)算后的壓縮子矩陣分布特征是否發(fā)生變化;若是,則響應(yīng)于仿真求解未完成,調(diào)用中央處理器重新確定壓縮子矩陣的存儲(chǔ)格式,得到處理后的壓縮子矩陣;重新執(zhí)行對(duì)壓縮子矩陣進(jìn)行仿真求解,得到運(yùn)算后的壓縮子矩陣的步驟;若否,則響應(yīng)于仿真求解未完成,重新執(zhí)行對(duì)壓縮子矩陣進(jìn)行仿真求解,得到運(yùn)算后的壓縮子矩陣的步驟。