| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Codecov ReportAll modified and coverable lines are covered by tests ✅ Additional details and impacted files @@ Coverage Diff @@
## main #194 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 14 14
Lines 1635 1733 +98
=========================================
+ Hits 1635 1733 +98 ☔ View full report in Codecov by Sentry.
|
Sorry, something went wrong.
|
It seems that compress can return Br and Bc with a different type (it's fine) and eltype (not fine)
ERROR: LoadError: MethodError: no method matching SparseMatrixColorings.JoinCompressed(::Int64, ::Int64, ::Int64, ::Matrix{Int64}, ::SparseArrays.SparseMatrixCSC{Bool, Int64}, ::Dict{Int64, Int64}, ::Dict{Int64, Int64})
The type `SparseMatrixColorings.JoinCompressed` exists, but no method is defined for this combination of argument types when trying to construct it.
I only got this error during the benchmarks. |
Sorry, something went wrong.
|
@gdalle julia> a = Dict{Int,Int}(i => i+1 for i = 1:100)
julia> Base.summarysize(a)
4464
julia> b = Vector{Int}(undef, 100)
julia> Base.summarysize(b)
840We have a factor 5 in terms of storage. |
Sorry, something went wrong.
|
The reason why they are dictionaries is that not every color is used for a row, or for a column. But we could probably put zeros as indices for unused colors |
Sorry, something went wrong.
|
@gdalle I rebased the branch but I will need your help to fix issue with compress for bicoloring. Update: I fixed it. If the type of the matrice that we want to compress is Bool, we need to ensure to the type of the compressed matrix is Int. In the context of bicoloring, Br and Bc can have a different eltype because of that if the group of row colors / column colors is empty. |
Sorry, something went wrong.
Benchmark Results
|
Sorry, something went wrong.
|
Hot damn! |
Sorry, something went wrong.
|
I don't understand these results. I am wondering if Br and Bc are dense matrices or not in the benchmarks. |
Sorry, something went wrong.
|
I just profiled the problematic case and we're spending most of the time in the new getindex, as I feared. Even though both Br and Bc are dense. |
Sorry, something went wrong.
|
On the other hand, in the previous version of the code (the one on main), I see that Br or Bc can be sparse (!!!). This means the benchmarking will be biased because they should be dense in the first place. I'll try to fix that first. |
Sorry, something went wrong.
|
We also should use random ordering in the benchmarks, otherwise the results will be trivial. |
Sorry, something went wrong.
|
I just merged the modifications from #198, the upcoming benchmarks will be more realistic |
Sorry, something went wrong.
|
@amontoison the benchmarks are updated and now we don't see any significant speedups, but we still have the huge slowdowns on some instances. I'm not sure it's worth the memory savings, what do you think? |
Sorry, something went wrong.
|
Another issue with the benchmarks is that, in the current state, we're unable to pre-allocate Br_and_Bc due to mismatched decompression_eltype. #199 fixes that |
Sorry, something went wrong.
|
Note that I still need to do an efficient decompression for acyclic bicoloring. |
Sorry, something went wrong.
|
@gdalle The PR is finally ready for review! |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Use a lazy representation of Br_and_Br.
The PR can be merged later but I wanted to check if it works to do the decompression like this.
I would like to describe the decompression of bicoloring with this approach is the paper where we directly use Br and Bc.