-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
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.
Metadata
Metadata
Assignees
Labels
No labels