Skip to content

Benchmarking - #3864

Merged
dopplershift merged 32 commits into
Unidata:mainfrom
blue-jaye-121:benchmarking
Jul 28, 2025
Merged

Benchmarking#3864
dopplershift merged 32 commits into
Unidata:mainfrom
blue-jaye-121:benchmarking

Conversation

@blue-jaye-121

@blue-jaye-121 blue-jaye-121 commented Jul 7, 2025

Copy link
Copy Markdown
Contributor

Description Of Changes

This pull requests incorporates a benchmarks folder into the root of MetPy. Within this folder is configuration for Airspeed Velocity, an open source Python benchmarking software, the benchmarks folder which contains the benchmarking files, the Jenkinsfile and Dockerfile required for the Jenkins instance to run the benchmarks weekly, scripts to make the benchmarking process easier for the Jenkins instance, and an artificial 4D dataset used as benchmarking data.
Additionally, the docs folder will include a new page under the developers guide heading to explain the benchmarking setup and where to see the results.

.
└── benchmarks/
  ├── Jenkinsfile: Instructions for Jenkins to run the workflow
  ├── Dockerfile: Instructions to generate the Docker image for benchmarking
  ├── asv.conf.json: Configuration file for ASV runs
  ├── asv_run_script.sh: Initializes machine and runs ASV on commits in no_bot_merge_commits.txt
  ├── data_array_generate.py: Python file to generate artificial 4D dataset for benchmarking
  ├── entrypoint.sh: Shell script to execute the Docker image's entrypoint
  ├── generate_hashes.sh: Shell script to parse MetPy history and find the first commit of each minor version
            1.4.0 - present and human-made merge commits from the most recent minor version
  ├── runner.sh: Used by Docker to trust the appropriate GitHub files and run ASV
  ├── asv/
  │  └── results/
  │     └── benchmarks.json: The configuration file for the current benchmarks; used by ASV to see changes between runs
  └── benchmarks/
    ├── __init__.py: Empty file that is used by ASV for initialization
    ├── apparent_temp_benchmarks.py: Benchmarks apparent temp functions
    ├── bound_layer_turbulence_benchmarks.py: Benchmarks boundary layer and turbulence functions
    ├── dry_thermo_benchmarks.py: Benchmarks dry thermodynamics functions
    ├── dyn_kin_benchmarks.py: Benchmarks dynamic/kinematic functions
    ├── math_fctn_benchmarks.py: Benchmarks mathematical functions
    ├── moist_thermo_benchmarks.py: Benchmarks moist thermodynamics functions
    ├── other_benchmarks.py: Benchmarks other functions
    ├── smoothing_benchmarks.py: Benchmarks smoothing functions
    ├── soundings_benchmarks.py: Benchmarks soundings functions
    └── std_atm_benchmarks.py: Benchmarks standard atmosphere functions

Checklist

  • Fully documented

Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
Comment thread benchmarks/data_array_generate.py Fixed
@blue-jaye-121
blue-jaye-121 marked this pull request as ready for review July 8, 2025 20:00
@blue-jaye-121
blue-jaye-121 requested a review from a team as a code owner July 8, 2025 20:00
@blue-jaye-121
blue-jaye-121 requested review from dcamron and removed request for a team July 8, 2025 20:00
@blue-jaye-121

Copy link
Copy Markdown
Contributor Author

The Build Docs failure is due to the results repository not being set up; once that gets set up it should be good to go

@dopplershift dopplershift left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks really good! Just a few minor comments/suggestions.

Comment thread benchmarks/Dockerfile Outdated
Comment thread README.md Outdated
Comment thread benchmarks/benchmarks/apparent_temp_benchmarks.py
Comment thread benchmarks/asv/results/benchmarks.json Outdated
@dopplershift
dopplershift enabled auto-merge (squash) July 28, 2025 17:14
@dopplershift
dopplershift merged commit 278dec3 into Unidata:main Jul 28, 2025
42 of 43 checks passed
@github-actions github-actions Bot added this to the 1.7.1 milestone Jul 28, 2025
@dopplershift dopplershift added Area: Infrastructure Pertains to project infrastructure (e.g. CI, linting) Type: Enhancement Enhancement to existing functionality labels Jul 28, 2025
@dopplershift dopplershift removed this from the 1.7.1 milestone Jul 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Infrastructure Pertains to project infrastructure (e.g. CI, linting) Type: Enhancement Enhancement to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants