-
-
Notifications
You must be signed in to change notification settings - Fork 411
Closed
Labels
Milestone
Description
The time-to-first solve issue in MOI has been helpful: jump-dev/MathOptInterface.jl#1313. Here's one for JuMP.
I'm going to close the old issues #2273 #1181 in favor of this one, since they all related to the same problem: latency.
Benchmarks
#2723 added some benchmarking scripts. The most relevant one is running all of the examples from scratch.
$ julia test/perf/JuMPBenchmarks.jl -j /Users/Oscar/julia1.6
This takes quite a while, but it runs each of the examples in a fresh Julia instance.
SnoopCompile
We can also use the SnoopCompile tools
using SnoopCompile
using JuMP
tinf = @snoopi_deep include("docs/src/tutorials/Mixed-integer linear programs/diet.jl")
import ProfileView
fg = flamegraph(tinf)
ProfileView.view(fg)
itrigs = inference_triggers(tinf)
mtrigs = accumulate_by_source(Method, itrigs)
modtrigs = filtermod(JuMP, mtrigs)Current
Here's what it looks like at the moment:

- The big red blob is our MOI bridging problem.
- The stuff to the right is also MOI related
- The second big red blob is instantiating the GLPK optimizer and bridges etc
- The big green blob is MutableArithmetic-related stuff (we should attack that)
- Left of the MA stuff is macro issues. The macro code is pretty bad and could do with a big refactoring. Everything currently is untyped
Any.