Semi-automation of engine benchmarks processing #5718
Unanswered
Akirathan
asked this question in
Work In Progress - Engine
Replies: 3 comments 9 replies
-
We can also split benchmarks into multiple machines - what do you think about it? |
Beta Was this translation helpful? Give feedback.
3 replies
-
We are intending adding XML reading into Enso at some point soon. There is a ticket for us to build a workflow to analyze these benchmarks in future. |
Beta Was this translation helpful? Give feedback.
6 replies
-
I think it would be even enough if we just drop benchmark results in AWS bucket. Adding MongoDB to the equation means that someone has to maintain it. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Recent issues with Engine performance made me think about semi-automate processing of benchmark reports once again. This time, I think I have a solution that is easy to implement and very useful.
Current state
Currently, there are Engine benchmark actions defined as post-merge jobs, that usually wait about 15 hours to be scheduled, and run for roughly 3 hours. These jobs upload a single
bench-report.xml
artifact that contains benchmark names with their associated score (iteration duration in ms), nothing else. There is no automation whatsoever, for benchmark comparison between two different PRs, one needs to manually find the appropriate benchmark jobs, download thebench-report.xml
artifact, and manually compare these two XML files. I doubt that there is a single person from the Engine team doing that regularly.TL;DR; All the benchmark post-merge jobs nowadays are essentially waste of at least 3 hours of CPU time. Pretty intensive CPU time, I assume, since the Graal compilation is distributed among many threads on the background.
Proposition
Let me summarize the proposition into a simple list of steps. More detailed description can be found in #5714.
We can then create an Enso project that will connect to the MongoDB, and process, say, last
n
entries and create a table from that that will be manually inspected by someone from the engine team on a weekly basis. Related issue for that is #5165.cc @wdanilo @xvcgreg @JaroslavTulach
Beta Was this translation helpful? Give feedback.
All reactions