Skip to content

Commit

Permalink
Ajout d'une référence pour SSMC
Browse files Browse the repository at this point in the history
  • Loading branch information
amontoison committed Nov 25, 2022
1 parent b0ddf51 commit 5f36170
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
13 changes: 13 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
@Article{davis-hu-2011,
title = {The {U}niversity of {F}lorida sparse matrix collection},
author = {T. Davis and Y. Hu},
journal = {ACM Transactions on Mathematical Software},
volume = {38},
number = {1},
pages = {1--25},
year = {2011},
doi = {10.1145/2049662.2049663},
publisher = {ACM},

}

@article{bezanson-edelman-karpinski-shah-2017,
author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B.},
title = {Julia: A Fresh Approach to Numerical Computing},
Expand Down
10 changes: 6 additions & 4 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,11 @@ It illustrates several of the facilities of Krylov.jl: solver preallocation and
Another example based on a simplistic Newton method without linesearch for convex optimization is also available in the documentation, and illustrates the same concepts in the sections “In-places methods” and “Factorization-free operators”.

```julia
using LinearAlgebra # Linear algebra library of Julia
using SparseArrays # Sparse library of Julia
using Krylov # Krylov methods and processes
using ForwardDiff # Automatic differentiation
using LinearOperators # Linear operators
using ForwardDiff # Automatic differentiation
using Quadmath # Quadruple precision
using MKL # Intel BLAS

Expand Down Expand Up @@ -150,17 +151,18 @@ JF(x) = LinearOperator(T, 3, 2, symmetric, hermitian, (y, v) -> J(y, x, v), #
gauss_newton(F, JF, x₀)
```

Our second example concerns the solution of a complex Hermitian linear system from the SuiteSparse Matrix Collection with an incomplete Cholesky factorization preconditioner on GPU.
Our second example concerns the solution of a complex Hermitian linear system from the SuiteSparse Matrix Collection [@davis-hu-2011] with an incomplete Cholesky factorization preconditioner on GPU.
The preconditioner $P$ is implemented as an in-place linear operator that performs the forward and backward sweeps with the Cholesky factor to model $P^{-1}$.
Because the system matrix is Hermitian and positive definite, we use the conjugate gradient method.
However, other methods for Hermitian systems could be used, including \textsc{Symmlq}, \textsc{Cr} and \textsc{Minres}.

```julia
using LinearAlgebra # Linear algebra library of Julia
using SparseArrays # Sparse library of Julia
using Krylov # Krylov methods and processes
using LinearOperators # Linear operators
using MatrixMarket # Reader of matrices stored in the Matrix Market format
using SuiteSparseMatrixCollection # Interface to the SuiteSparse Matrix Collection
using LinearOperators # Linear operators
using CUDA # Interface to Nvidia GPUs
using CUDA.CUSPARSE # Nvidia CUSPARSE library

Expand All @@ -183,7 +185,7 @@ P = ic02(A_gpu, 'O')
function ldiv_ic0!(y, P, x)
copyto!(y, x)
ldiv!(LowerTriangular(P), y) # Forward substitution with L
ldiv!(LowerTriangular(P'), y) # Backward substitution with Lᴴ
ldiv!(LowerTriangular(P)', y) # Backward substitution with Lᴴ
return y
end

Expand Down

0 comments on commit 5f36170

Please sign in to comment.