JuliaSmoothOptimizers / Krylov.jl

A Julia Basket of Hand-Picked Krylov Methods
Other
338 stars 51 forks source link

parallel gmres #847

Open rveltz opened 8 months ago

rveltz commented 8 months ago

Hi,

I want to solve a system in which the evaluation A*x is slow. Hence, I am wondering if there are methods to compute a block (here 2) Av1, Av2 in parallel and use it in the Krylov basis.

Thanks!

amontoison commented 8 months ago

Hi @rveltz! You have the block-GMRES method that do matrix-matrix products instead of matrix-vector products but it's for linear systems with multiple right-hand sides (AX = B).

If you have one right-hand side b, you can still split it in two parts such that b1 + b2 = b and use block-GMRES to solve AX = [b1 b2]. The sum of the two columns of X will give you the solution of Ax = b. It requires more flops but you have more parallel operations. It could lead to a nice speed-up on GPU.