Abstract
在矩陣計算領域中,求解一個矩陣的QR分解是非常得要的課題。諸如在解最小平方法問題,線性系統問題以及QR演算法求解特徵值問題等等,均須計算所給定的矩陣的QR分解。本篇文章中,主要是研究在Ncube 平行處理上, 如何來平行計算一矩陣的QR分解。由於Ncube 是具有局部記憶體及資料互相傳輸的多重平行處理功能, 若假設現有P 個處理器, 我們將提出一個新的資料存放法, 即將一給定矩陣的每一行依處理器的號碼{1,2,....,P},{P,P-1,....,1},......,{1,2,....,P}蛇形式的循環存放。不同於傳統上依照{1,2,....,p},...{1,2,...,p},....的順序存放?5 ?, 我們發現, 蛇形存放法在平行計算矩陣的QR分解時, 各個node所處理行數相等, 因此, 運算量幾乎相等, 嚴格說來, node p比node.1只多處理了(P -P)個運算量, P 若不是很大時, 此運算量幾乎可以忽略。若用傳統的資料存放法求取一個m*n 矩陣的QR分解時, 則第P 個node 1多處理(p-1)m個運算量。一般應用上m 的值是較大的, 因此, 依序資料存放法會產生各個node上工作量的不平衡, 即有些node閒置(idle)的時間太多, 有些工作繁重。而蛇形法是考慮盡量使得各個node工作量達到平衡(Load Bala-nce )。另外,我們在程式設計上,也引用先作先傳的觀念,不依sequential QR 分解的算法。第二節我們將介紹如何利用QR分解求解最小平方問題。我們提出二個不同的方法求解一矩陣的假逆矩陣, 而求得最小平方的2-norm最小的解。第三節我們提出新的矩陣資料存放法以改善傳統的順序存放法, 並給出一個平行Algorithm。 第四節我們給出理論預測公式及其曲線並比較實際的數值結果。