平行演算法期末報告
中山應數所科學計算組
陳家全
m8724624
動機:
由於另一門課有接觸到以SOR(Successive Over-Relaxation iteration)
超鬆弛法來求Ax = b的解,SOR是以矩陣迭代求得收斂的近似解,計算量龐大,應該很適合作為平行處理的課題。
說明:
FDM(Finite Difference Method)是一種Harmonic, Poisson and Blending models微分方程的求解的方法。這個課題是用FDM的五點公式並套用SOR來迭代收斂求解。
Five-point scheme of FDM:
![]()
![]()
導出的SOR
迭代公式如下:

and w = 2/(1+ sin(&piH)).
按照迭代的程序,這是適用於單CPU
的情況。在平行演算下,需對迭代程序做些調整。
< 將網格區分為黑點和白點 >

迭代程序:
先對黑點做迭代,即可求出黑點的新值,接著換白點迭代並取用新的黑點值計算。即黑點改用Jacobi
計算,白點再用SOR迭代。(內部的起始值fi,j 皆取0)
數據:
CPU |
M=50 |
M=100 |
M=200 |
2 |
1 |
6 |
30 |
4 |
2 |
14 |
64 |
6 |
3 |
20 |
104 |
8 |
4 |
28 |
147 |
結論:
上表為第一個CPU
從開始運算,傳遞及接收資料至結果收斂為止之時間。結果顯示CPU增加一倍,時間亦增加一倍。與預期的有出入,其原因可能在資料傳遞上所花費的時間,因各CPU需互相傳遞資料始可做下一步運算。故CPU增加,傳遞時間花費亦增加,因此Time = O( M )。