Preconditioning algorithm on GPU for solution of sparse matrices
9 ビュー (過去 30 日間)
古いコメントを表示
Hi
I solve large sparse Ax=b equations with conjugate gradient algorithms with a preconditioner. Since Matlab 2016a, Matlab started to support some conjugate gradient algorithms like bicgstab, pcg, gmres on GPU with a preconditioner for sparse matrices. Those functions only accept M sparse matrix (M=M1*M2 for M1 lower M2 upper triangular sparse matrix) not M1 and M2.
I'm wondering how Matlab apply preconditioner? I know that sparse triangular matrix solving on GPU is notoriously slow. So I think it might use some kind of iterative method. Maybe preconditioner applying might be done on CPU instead. So what exactly is done on the background while applying the preconditioner?
0 件のコメント
採用された回答
Joss Knight
2016 年 5 月 20 日
編集済み: Joss Knight
2016 年 5 月 20 日
MATLAB's preconditioning for sparse iterative solvers on the GPU is currently implemented using ILU and sparse triangular solves. If you have a solution more appropriate to your problem then you can use the functional form - this diverts to a different implementation but can be faster and/or converge better depending on your problem.
5 件のコメント
Joss Knight
2016 年 6 月 15 日
It sounds like you're saying that the ILU produces better factors of M than the original two triangular matrices used to create it - that's possible, I don't know the details of the implementation.
Royi Avital
2018 年 8 月 14 日
@Joss, Does the current PCG implementation is multi threaded? Does it use Intel MKL solver behind the scene?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Parallel and Cloud についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!