Benchmarking - #3864
Merged
Merged
Conversation
Contributor
Author
|
The |
dopplershift
left a comment
Member
There was a problem hiding this comment.
This looks really good! Just a few minor comments/suggestions.
Co-authored-by: Ryan May <rmay31@gmail.com>
Co-authored-by: Ryan May <rmay31@gmail.com>
dopplershift
approved these changes
Jul 28, 2025
dopplershift
enabled auto-merge (squash)
July 28, 2025 17:14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 version1.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 functionsChecklist