Hi,
There is a significant difference between versions 0.6.0 and 1.1.0 of AlgebraicMultigrid.jl for the following sparse matrix to create the preconditioner
using SparseArrays, LinearAlgebra, AlgebraicMultigrid
(Tv, n, p) = (Float64, 4000000, 1.0e-8)
A = sprand(Tv, n, n, p)
A1 = 0.5 * (A + A') + LinearAlgebra.I
Observed results
v1.0.0
julia> @time AlgebraicMultigrid.aspreconditioner(AlgebraicMultigrid.smoothed_aggregation(A1))
1.355003 seconds (456 allocations: 717.090 MiB, 32.77% gc time)
AlgebraicMultigrid.Preconditioner{AlgebraicMultigrid.MultiLevel{AlgebraicMultigrid.Pinv{Float64}, GaussSeidel{SymmetricSweep}, GaussSeidel{SymmetricSweep}, SparseMatrixCSC{Float64, Int64}, SparseMatrixCSC{Float64, Int64}, Adjoint{Float64, SparseMatrixCSC{Float64, Int64}}, AlgebraicMultigrid.MultiLevelWorkspace{Vector{Float64}, 1}}, AlgebraicMultigrid.V}(Multilevel Solver
-----------------
Operator Complexity: 1.035
Grid Complexity: 1.037
No. of Levels: 4
Coarse Solver: Pinv
Level Unknowns NonZeros
----- -------- --------
1 4000000 4319678 [96.66%]
2 148084 149020 [ 3.33%]
3 462 462 [ 0.01%]
4 0 0 [ 0.00%]
, :zero, AlgebraicMultigrid.V())
v1.1.0
julia> @time AlgebraicMultigrid.aspreconditioner(AlgebraicMultigrid.smoothed_aggregation(A1))
45.310739 seconds (2.67 M allocations: 838.746 MiB, 1.28% gc time)
AlgebraicMultigrid.Preconditioner{AlgebraicMultigrid.MultiLevel{AlgebraicMultigrid.Pinv{Float64}, GaussSeidel{SymmetricSweep}, GaussSeidel{SymmetricSweep}, SparseMatrixCSC{Float64, Int64}, SparseMatrixCSC{Float64, Int64}, Adjoint{Float64, SparseMatrixCSC{Float64, Int64}}, AlgebraicMultigrid.MultiLevelWorkspace{Vector{Float64}, 1}}, AlgebraicMultigrid.V}(Multilevel Solver
-----------------
Operator Complexity: 1.034
Grid Complexity: 1.037
No. of Levels: 4
Coarse Solver: Pinv
Level Unknowns NonZeros
----- -------- --------
1 4000000 4319362 [96.67%]
2 147639 148523 [ 3.32%]
3 440 440 [ 0.01%]
4 0 0 [ 0.00%]
, :zero, AlgebraicMultigrid.V())
Version Info
julia> versioninfo()
Julia Version 1.11.2
Commit 5e9a32e7af (2024-12-01 20:02 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
Any help on this is much appreciated. Thank you.
Hi,
There is a significant difference between versions 0.6.0 and 1.1.0 of AlgebraicMultigrid.jl for the following sparse matrix to create the preconditioner
Observed results
v1.0.0
v1.1.0
Version Info
Any help on this is much appreciated. Thank you.