Oscar Dowson
Oscar Dowson
@/all: Thanks for the input. If anyone watching this thread (or your students) is interested in progressing this further, I've proposed this as a Google Summer of Code (GSOC) for...
No progress. MultiJuMP hasn't been updated to JuMP 1.0. Digging in to understand how it works and updating it to JuMP 1.0 would be a good project, if you have...
This came up on Gitter today, so I did some investigating: - @ericphanson did an excellent job on Convex.jl benchmarks - https://github.com/jump-dev/Convex.jl/tree/master/benchmark - https://ericphanson.github.io/ConvexTests.jl/dev/ - JuliaCI has packages to help...
Ideally once JuMP 1.0 is released, we wouldn't have to worry about breaking any benchmarks. (And if we did, that's an indication that we've done something wrong!) There are some...
Made progress here: https://github.com/jump-dev/benchmarks Dashboard is available at https://jump.dev/benchmarks/
A lot of it is creating 20,000,000 ordered dictionaries for the `AffExpr` in the constraints. I've been going through the MOI side first. Not sure what parts we could optimize...
The ordered dictionary is a big contributor we can't do much about. One long-term option would be to go the Gravity route with constraint templates. But there are a few...
So the names thing is pretty much just to cost creating a dictionary to store the names. We can't do much better: ```Julia function test_names(N) x = Dict{Int,String}() for i...
So the obvious question here would be: When creating the `@constraint`, why do we first create an `AffExpr`, and then convert it into a `MOI.ScalarAffineFunction`? We don't cache the `AffExpr`,...
Yeah part of the issue is that we add them one-by-one so we don't have this size information.