Sobhan Mohammadpour
Sobhan Mohammadpour
Maybe the solution is adding a wrapper that does the job? something like ```julia struct Wrap s::Union{Nothing,String} end Wrap()=Wrap(nothing) Base.zero(::Wrap) = Wrap() Base.iszero(x::Wrap) = x.s === nothing sparse(Wrap.(["123", nothing, "234"]))...
```julia using SparseArrays, LinearAlgebra N = 31_308 M = 13_310_352 A = sprandn(N, N, M / N / N); @time lu(A); ``` is pretty reasonable? `472.549481 seconds (396.07 k allocations:...
It is 64 bits tho 31308×31308 SparseMatrixCSC{Float64, Int64} with 13317263 stored entries:
@jbcaillau so it seems. From page 41 of the UMFPACK manual: `UMFPACK_ERROR_out_of_memory` Insufficient memory to perform the symbolic analysis. If the analysis requires more than 2GB of memory and you...
Do note that another solution is `nonzeros(v) .*= 4`. The culprit is that broadcast is only for unaliased vector (unalised refers to the left and right-hand side sharing memory, here...
So we only trigger a copy if the structure changes or just do it inplace?
I think there are two other ways to do it, add a global `Ref{Bool} can_index` state that is checked by those functions, or store it as part of the matrix/type...
Maybe it sense to make an `is_reconstructible_zero`? The default implementation could be `x === zero(typeof(x))`, and then it could be overwritten for different types on an as-needed basis? I think...
I did my best to flush all the queues, but I still think it ends up freezing on rare occasions on Beluga (compute Canada/calculate Quebec). I do not understand why...