-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use block_gmres
for batched linear solves
#129
Comments
Thanks for the idea. I don't have much time to work on this at the moment though |
how can block-gmres help ID.jl? |
for example here: dy = ntuple(Val(N)) do k
dₖx = partials.(x_and_dx, k)
dₖx_vec = vec(dₖx)
dₖc_vec = similar(y_vec)
mul!(dₖc_vec, B_vec, dₖx_vec)
dₖy_vec = solve(implicit.linear_solver, A_vec_presolved, -dₖc_vec)
reshape(dₖy_vec, size(y))
end
y_and_dy = map(eachindex(IndexCartesian(), y)) do i
Dual{T}(y[i], Partials(ntuple(k -> dy[k][i], Val(N))))
end instead of solving with gmres for each slice you could use block-gmres once. I didn't check the block-gmres implementation but I think it is worth testing whether this speeds up computation and this might also allow to solve #118 |
This is implemented in #135 but it still requires JuliaSmoothOptimizers/Krylov.jl#854 to be fixed |
The latest Krylov.jl version has a block-gmres version which I think can simplify/speed-up some parts of the code.
The text was updated successfully, but these errors were encountered: