Skip to content

Commit

Permalink
add openmodelica timings
Browse files Browse the repository at this point in the history
  • Loading branch information
baggepinnen committed Jun 11, 2024
1 parent dcf346a commit 0c68a47
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions benchmarks/ModelingToolkit/Multibody_Robot.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ using Pkg

using ModelingToolkit
using Multibody
using Multibody: Robot6DOF
using JuliaSimCompiler
using OrdinaryDiffEq
using CairoMakie
Expand Down Expand Up @@ -65,6 +66,54 @@ barplot(f[2,1], timings, axis=(; title="Log Timings", xticks = (xs, labels), ysc
f
```

## OpenModelica

```julia
cd(@__DIR__)
using Pkg
Pkg.activate(".")
using OMJulia
mod = OMJulia.OMCSession();
OMJulia.sendExpression(mod, "getVersion()")

@show "Start OpenModelica Timings"

totaltime = @elapsed begin
om_build = @elapsed ModelicaSystem(mod, modelName="Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.FullRobot", library="Modelica")
om_sim = @elapsed res = sendExpression(mod, "simulate(Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.FullRobot)")
end
@assert res["messages"][1:11] == "LOG_SUCCESS"

OMJulia.quit(mod)
```

## Comparison
```julia
colors = Makie.wong_colors()
labels = ["Build", "Simulate"]
julia_build = time_instantiate + time_simplify + time_prob + time_extract_data
julia_sim = time_solve

data = [
julia_build julia_sim
om_build om_sim
]

xs = repeat(1:length(labels), inner=2)
group = repeat([1,2], outer=2)
fig = Figure()
barplot(fig[1,1], xs, vec(data), dodge=group, color=colors[group], axis=(; title="Timings", xticks = ([1,2], labels)))

# Legend
legendentries = ["Julia", "OpenModelica"]
elements = [PolyElement(polycolor = colors[i]) for i in 1:length(legendentries)]
title = "Contestants"

Legend(fig[1,2], elements, legendentries, title)
fig
```


## Appendix

```julia, echo = false
Expand Down

0 comments on commit 0c68a47

Please sign in to comment.