大規(guī)模稀疏矩陣線性方程組求解可以有多快!

          對于工業(yè)軟件研發(fā)尤其是CAE軟件研發(fā)來說,線性方程組的求解精度和速度較為重要,在方程組規(guī)模上來以后,以Krylov子空間為基礎(chǔ)的PCG,Bicgstab,Gmres等方法相對于直接法在求解效率和精度控制上有較大優(yōu)勢。這也是abaqus等商業(yè)軟件在對于規(guī)模較大的模型時采用迭代法求解通常會比直接法求解更快的其中一個原因。

        以自由度數(shù)為41w的如下分布的稀疏矩陣為例,

大規(guī)模稀疏矩陣線性方程組求解可以有多快!的圖1

        該稀疏矩陣形成的系數(shù)方程組在matlab中采用直接求解為1.5s,采用一定預(yù)處理下的PCG求解時間為0.55s。


        用筆者自行開發(fā)的稀疏矩陣PCG求解器運(yùn)行此算例,方程組求解時間為0.628s。

大規(guī)模稀疏矩陣線性方程組求解可以有多快!的圖2

        此時,整個程序的運(yùn)行時間瓶頸實際上并不在方程求解,而在于從文件中讀取稀疏矩陣對應(yīng)的數(shù)據(jù)。一般情況下采用fscanf讀取數(shù)據(jù)會快于用fstream讀取。改用fscanf讀取數(shù)據(jù)后,程序總運(yùn)行時間從原來的16s變?yōu)?s。

                                               【完】

歡迎關(guān)注公眾號  有限元術(shù)

一個講有限元技術(shù)的公眾號

二維碼2.jpg
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

1
2
1