-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Benchmark Visualizer: Conjure Native vs Oxide #291
base: main
Are you sure you want to change the base?
Conversation
…d capture of stdout for cargo test]
…tive tests) and conjure oxide automated shell script cargo run (large because of different local mixed commits merged
…ualizer for node count and time elapsed. NOTE: commit includes several snippets from previous week branches!
…mark visualization
@PedroGGBM any change compared to the demo, or is this the same? Also does it compile to a static webpage, or is a server required? |
This is the same with some slight bug fixes and further documentation (look at For now, if you want to visualize it before/after optimizing Minion Oxide, simply run the |
To clarify, Github pages hosts static files (i.e serverless stuff) only. Probably not a problem, just something to consider |
I think the dynamic server side is a problem for this actually. The main goal is checking the correctness of conjure-oxide (starting from conjure-oxide tests) with respect to conjure. This can be done as part of the existing tester and outputs shown as test results. Making a static dashboard page for easy exploration of the test results would be good as well. As it stands I think this PR tries to do too much and not enough at the same time. We need to iterate on the goals of this work before landing the PR. |
If static hosting is a requirement, I think Quarto (what used to be Rmarkdown but now for Python too) has static dashboards now that are fairly plotting library agnostic (so might work with the existing plots) |
It also has observableJS which might(?) be interactive and serverless, but even without interactivity its generally a good tool for turning code notebooks (Jupyter or R) into reports and websites so is probably worth a look |
Thank you @niklasdewally for the Quarto recommendation :) Just added support for the static HTML dashboard generation, and edited README.md and build.sh correspondingly; all works like a charm. @ozgurakgun apologies for the delay in getting this in. I suppose now it has a both a dynamic and static dashboard... I'll include this in my final proj report as well. |
Definitely a step in the right direction. Here's some of my thoughts about this in general - these are not necessarily problems with the PR or things that can be done this semester, just things that come to mind:
|
Thank you @niklasdewally for the thoughts! The whole Jupyter widgets extension might be a good project to do over the summer or next semester. The images as stored in As for the deployment landscape, right now it's limited to running the Thanks again! These are some really good further development ideas. |
@@ -0,0 +1,52 @@ | |||
// // cpu_time_tests.rs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
file entirely commented out. should it be here?
quarto render ./html/dashboard.qmd | ||
``` | ||
|
||
## RUN DYNAMIC DASHBOARD MANUALLY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest we remove the dynamic dashboard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should not commit the pngs to the repo. they should be generated as part of the static dashboard build and pushed to the gh-pages branch. ideally in a gh-action.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto for the generated html.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
which subset of tests are we importing? not sure about wholesale import of a large number of tests before we are happy with the testing functionality itself. maybe import a few as part of this PR and we can easily add more later once the scaffolding is done?
…riginal conjure repo
…arison in Node graphs & fixed bugs
The following PR contains an interactive dashboard using Dash to display relevant statistics comparing solvers from Conjure Native versus Conjure Oxide:
All instructions on how to execute the program
app.py
file and run the shell/Rust script to get solver statistics for exhaustive tests are included in aREADME.md
file. Please refer to said file for Python environment setup.Extensions:
.essence
files to create new models, and change.param
file values to get relevant testing statistics for each solverPlease note that, although node count for SavileRow is only relevant when comparing same solver across Oxide vs Native (i.e. Minion), other Conjure Native node counts are still included for when there is full support for other Oxide solvers.
Examples:
(Based on Georgii's Issue #248 on a web UI for Native vs Oxide benchmarks)