Preconditioning algorithm on GPU for solution of sparse matrices
10 次查看(过去 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!