cossio
cossio
@ararslan Thanks for the suggestion, Coverage helps. I inspected the .mem files for MathProgBase (https://github.com/cossio/cvx_example_data/blob/master/mpb_allocation.tar.gz) and they show no allocations. Then I realized the solvers implement their own versions of...
@ararslan Yes, https://github.com/cossio/cvx_example_data/blob/master/scs_allocation.tar.gz. ``` julia> mem[end-10:end] 11-element Array{Coverage.MallocInfo,1}: Coverage.MallocInfo(0, "./MPBWrapper.jl.mem", 387) Coverage.MallocInfo(0, "./MPBWrapper.jl.mem", 388) Coverage.MallocInfo(0, "./MPBWrapper.jl.mem", 389) Coverage.MallocInfo(0, "./MPBWrapper.jl.mem", 397) Coverage.MallocInfo(0, "./SCS.jl.mem", 22) Coverage.MallocInfo(0, "./SCS.jl.mem", 23) Coverage.MallocInfo(1248, "./MPBWrapper.jl.mem", 36) Coverage.MallocInfo(1440,...
@ararslan I think these solvers print a version banner before starting the iterations. But I'm not sure if that's what we are seeing.
Thanks @mlubin! I'm seeing the allocations again, just from the call to `conic_problem`. So we are back to this not being not an issue with the solvers. Here is what...
The top ten allocations just from `Convex.jl`: ``` julia> analyze_malloc("./Convex/")[end-10:end] 11-element Array{Coverage.MallocInfo,1}: Coverage.MallocInfo(9620766, "./Convex/MLj0c/src/variable.jl.mem", 22) Coverage.MallocInfo(10386046, "./Convex/MLj0c/src/utilities/show.jl.mem", 20) Coverage.MallocInfo(15278217, "./Convex/MLj0c/src/atoms/affine/add_subtract.jl.mem", 124) Coverage.MallocInfo(15407963, "./Convex/MLj0c/src/constant.jl.mem", 54) Coverage.MallocInfo(15721748, "./Convex/MLj0c/src/constant.jl.mem", 22) Coverage.MallocInfo(24140413, "./Convex/MLj0c/src/constraints/constraints.jl.mem", 143)...
@ararslan The fact that the value-type of the `OrderedDict` is not concrete (`Union{AbstractArray,Number}`) may not be ideal. Can this type be more specific? (just throwing a random idea out there)
@iamed2 It seemed strange to me that my system reported more than 10GB allocations, but the `.mem` files were reporting lower values. So `julia --track-allocations=user` misses all the allocations made...
I see, I misunderstood then. Then this does not explain why the system reports > 10 GB allocations.
This bug protects itself. It kills your computer before showing itself. I tried `Adj = Matrix(Adj)` (which should avoid sparse operations), but got the same huge allocations.
@bfirsh Nice! Ok I changed the title of the issue to add a link. Reopen to remember?