Skip to content

Collect and visualize benchmark results#208

Merged
jrbourbeau merged 47 commits intomainfrom
custom-dashboarding
Jul 22, 2022
Merged

Collect and visualize benchmark results#208
jrbourbeau merged 47 commits intomainfrom
custom-dashboarding

Conversation

@ian-r-rose
Copy link
Contributor

@ian-r-rose ian-r-rose commented Jul 12, 2022

Fixes #186, fixes #187, fixes #188, fixes #189.

This is a proof-of-concept based on the discussion in #186 using the "custom fixtures" solution, for the reasons therein.

The stack involves:

  1. Metrics are collected using pytest fixtures. Currently this just does wall clock time, but I've built in fields for others and I don't see many barriers to implementing them.
  2. Historical benchmarking data is stored in sqlite databases in s3. This could also be CSV, JSON, Parquet, but I found that working with sqlalchemy+sqlite handles multiple connections nicely when running with pytest-xdist, and using alembic allows for not-too-horrible migrations should we want to change the schema. Eventually, this could be replaced with some notion of repeated "jobs" in coiled itself.
  3. Historical benchmarking data is currently parameterized per-platform, per-coiled-runtime, per-python-version. This is subject to change.
  4. Historical data are visualized using static sites on github pages. I've used panel to generate them, but other tools are possible.
    Sample: https://coiled.github.io/coiled-runtime/benchmark-ubuntu-latest-0.0.4-py3.9.html

Copy link
Contributor

@ncclementi ncclementi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is WIP but I left some comments.

env:
AWS_ACCESS_KEY_ID: ${{ secrets.RUNTIME_CI_BOT_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.RUNTIME_CI_BOT_AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-2 # this is needed for boto for some reason
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be connected to #207

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be, I was thinking along the same lines! Not sure what's going on there, but I also wonder whether it's related to the region thing that you ran into with the s3 pytest fixtures here

Copy link
Contributor

@gjoseph92 gjoseph92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super cool!

@ian-r-rose ian-r-rose force-pushed the custom-dashboarding branch from 1ac9d62 to 7020055 Compare July 13, 2022 21:45
@ian-r-rose ian-r-rose force-pushed the custom-dashboarding branch from d7756be to 9f99cfb Compare July 15, 2022 18:44
@ian-r-rose ian-r-rose force-pushed the custom-dashboarding branch from 9f99cfb to c0ebf7d Compare July 15, 2022 19:07
@ian-r-rose ian-r-rose force-pushed the custom-dashboarding branch 4 times, most recently from 66477d2 to 60b2317 Compare July 18, 2022 18:50
@ian-r-rose ian-r-rose force-pushed the custom-dashboarding branch from bc68a61 to be60409 Compare July 19, 2022 01:51
@ian-r-rose ian-r-rose marked this pull request as ready for review July 19, 2022 02:25
@ian-r-rose ian-r-rose changed the title [WIP] Custom dashboarding Collect and visualize benchmark results Jul 19, 2022
Copy link
Contributor

@ncclementi ncclementi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some comments, mostly for my understanding

@ian-r-rose
Copy link
Contributor Author

Okay, this should be good to go

Copy link
Contributor

@jrbourbeau jrbourbeau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all your work on this @ian-r-rose -- looking forward to building up a bunch of test suite runs : )

@jrbourbeau jrbourbeau merged commit 6ab59e1 into main Jul 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Viewing benchmark results Bring benchmarking framework online Determine where historical benchmarking data should live Choose benchmarking tool

4 participants