Skip to content
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

Ensure that bench downloading script downloads artifacts from correct job #9355

Open
Akirathan opened this issue Mar 11, 2024 · 10 comments · May be fixed by #10224
Open

Ensure that bench downloading script downloads artifacts from correct job #9355

Akirathan opened this issue Mar 11, 2024 · 10 comments · May be fixed by #10224
Assignees
Labels
-tooling Category: tooling p-high Should be completed in the next sprint x-chore Type: chore

Comments

@Akirathan
Copy link
Member

A follow-up of #9322. The Benchmark Engine workflow now has two jobs. One that runs with Oracle GraalVM and another one that runs with GraalVM CE. Ensure that the website_regen.py fetches artifacts from the GraalVM CE job so far.

@Akirathan Akirathan added -tooling Category: tooling p-high Should be completed in the next sprint x-chore Type: chore labels Mar 11, 2024
@Akirathan Akirathan self-assigned this Mar 11, 2024
@JaroslavTulach
Copy link
Member

Ensure that ... fetches artifacts from the GraalVM CE job so far.

It'd be even better if the official benchmark results displayed values from both GraalVM versions. Each in different color.

At the end the goal is to find out why using Oracle GraalVM is better than sticking with GraalVM CE. Performance is likely one of the reasons. Having such reason directly that visible in the benchmarks result might be the convincing point.

@Akirathan
Copy link
Member Author

Akirathan commented Mar 13, 2024

First successful engine-benchmark.yml workflow run is at https://github.com/enso-org/enso/actions/runs/8257237123:

The uploaded Runtime Benchmark Report artifact contains results from the Engine Benchmarks (GraalVM CE). There are no artifacts for the Oracle GraalVM job.

GitHub
Hybrid visual and textual functional programming. Contribute to enso-org/enso development by creating an account on GitHub.

@Akirathan
Copy link
Member Author

Preliminary manual comparison of GraalVM CE VS Oracle GraalVM engine benchmarks:

Label GraalVM CE Oracle GraalVM
org.enso.compiler.benchmarks.module.ImportStandardLibrariesBenchmark.importStandardLibraries 159.612 94.404
org.enso.interpreter.bench.benchmarks.semantic.ArrayProxyBenchmarks.sumOverComputingProxy 0.120 0.090
org.enso.interpreter.bench.benchmarks.semantic.ArrayProxyBenchmarks.sumOverDelegatingProxy 0.120 0.089
org.enso.interpreter.bench.benchmarks.semantic.ArrayProxyBenchmarks.sumOverVector 0.081 0.033
org.enso.interpreter.bench.benchmarks.semantic.EqualsBenchmarks.equalsTrees 1.002 0.614
org.enso.interpreter.bench.benchmarks.semantic.IfVsCaseBenchmarks.caseBench3 2.800 2.201
org.enso.interpreter.bench.benchmarks.semantic.IfVsCaseBenchmarks.caseBench6 3.205 0.989
org.enso.interpreter.bench.benchmarks.semantic.IfVsCaseBenchmarks.ifBench3 2.566 0.446
org.enso.interpreter.bench.benchmarks.semantic.IfVsCaseBenchmarks.ifBench6 2.980 6.048
org.enso.interpreter.bench.benchmarks.semantic.IfVsCaseBenchmarks.ifBench6In 2.951 12.164

@JaroslavTulach
Copy link
Member

Re. ifBench6 - the manual inlining written by us is used in this benchmark - possibly it doesn't work well with Oracle GraalVM. Workaround: disable it and let Oracle do its job!

Otherwise the improvements look very nice!

@Akirathan
Copy link
Member Author

Re. ifBench6 - the manual inlining written by us is used in this benchmark - possibly it doesn't work well with Oracle GraalVM. Workaround: disable it and let Oracle do its job!

Related to the work done in #5709

@Akirathan Akirathan moved this from ❓New to 📤 Backlog in Issues Board Jun 7, 2024
@Akirathan Akirathan moved this from 📤 Backlog to ⚙️ Design in Issues Board Jun 7, 2024
@Akirathan Akirathan linked a pull request Jun 10, 2024 that will close this issue
4 tasks
@enso-bot
Copy link

enso-bot bot commented Jun 10, 2024

Pavel Marek reports a new STANDUP for today (2024-06-10):

Progress: - Making sure that results from Oracle GraalVM benchmarks are persistent.

  • bench result reporter in benchmarks-common refactored to report a single JSON file, according to a specific schema.
  • Most of the bench_download.py tool will get deprecated soon, let's replace it with a typescript CLI project.
    • Much easier to maintain, test, etc.
    • There is official octokit library for the GH API, unlike to the Python one.
    • Struggling with even generating venv for Python
    • This will be a HUGE simplification - just upload data from a single Github Action, this should be just a few dozens of JS code. It should be finished by 2024-06-12.

@enso-bot
Copy link

enso-bot bot commented Jun 11, 2024

Pavel Marek reports a new STANDUP for today (2024-06-11):

Progress: - Closing stale PRs

  • Adding more tests for BindingsMap.exportedSymbols.
  • Implementing new tool for downloading benchmarking data and uploading them to engine-bench-results.
    • Is a breeze with ockokit and NodeJS. It should be finished by 2024-06-12.

@Akirathan
Copy link
Member Author

Add #9355 (comment) : No artifacts for Oracle GraalVM benchmark job means that we have to gather the data from the job output. Note that job outputs also expire after 3 months, like artifacts.

@Akirathan
Copy link
Member Author

Last 3 months of Oracle GraalVM bench results persisted in 70cb785

@enso-bot
Copy link

enso-bot bot commented Jun 12, 2024

Pavel Marek reports a new STANDUP for today (2024-06-12):

Progress: - Results from Oracle GraalVM benchmark runs gathered in #10224 (comment)

  • It was more work than expected, as I needed to parse the results from job outputs - there are no artifacts for EE benches. It should be finished by 2024-06-12.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-tooling Category: tooling p-high Should be completed in the next sprint x-chore Type: chore
Projects
Status: ⚙️ Design
Development

Successfully merging a pull request may close this issue.

2 participants