Skip to content

Commit

Permalink
Add more benchmark CI (#262)
Browse files Browse the repository at this point in the history
  • Loading branch information
tmigot authored Jul 4, 2024
1 parent ef45585 commit 47ede70
Show file tree
Hide file tree
Showing 10 changed files with 181 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/BenchmarkGradient.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [labeled, opened, synchronize, reopened]

# Only trigger the benchmark job when you add `run benchmark` label to the PR
# Only trigger the benchmark job when you add `run gradient benchmark` label to the PR
jobs:
Benchmark:
runs-on: ubuntu-latest
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/BenchmarkHessian.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run gradient benchmarks

on:
pull_request:
types: [labeled, opened, synchronize, reopened]

# Only trigger the benchmark job when you add `run Hessian benchmark` label to the PR
jobs:
Benchmark:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'run Hessian benchmark')
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1
- uses: julia-actions/julia-buildpkg@latest
- name: Install dependencies
run: julia -e 'using Pkg; pkg"add PkgBenchmark [email protected]"'
- name: Run benchmarks
run: julia -e 'using BenchmarkCI; BenchmarkCI.judge(;baseline = "origin/main", script = joinpath(pwd(), "benchmark", "benchmarks_Hessian.jl"))'
- name: Post results
run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 25 additions & 0 deletions .github/workflows/BenchmarkHessianproduct.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run gradient benchmarks

on:
pull_request:
types: [labeled, opened, synchronize, reopened]

# Only trigger the benchmark job when you add `run Hessian product benchmark` label to the PR
jobs:
Benchmark:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'run Hessian product benchmark')
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1
- uses: julia-actions/julia-buildpkg@latest
- name: Install dependencies
run: julia -e 'using Pkg; pkg"add PkgBenchmark [email protected]"'
- name: Run benchmarks
run: julia -e 'using BenchmarkCI; BenchmarkCI.judge(;baseline = "origin/main", script = joinpath(pwd(), "benchmark", "benchmarks_Hessianvector.jl"))'
- name: Post results
run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 25 additions & 0 deletions .github/workflows/BenchmarkJacobian.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run gradient benchmarks

on:
pull_request:
types: [labeled, opened, synchronize, reopened]

# Only trigger the benchmark job when you add `run Jacobian benchmark` label to the PR
jobs:
Benchmark:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'run Jacobian benchmark')
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1
- uses: julia-actions/julia-buildpkg@latest
- name: Install dependencies
run: julia -e 'using Pkg; pkg"add PkgBenchmark [email protected]"'
- name: Run benchmarks
run: julia -e 'using BenchmarkCI; BenchmarkCI.judge(;baseline = "origin/main", script = joinpath(pwd(), "benchmark", "benchmarks_Jacobian.jl"))'
- name: Post results
run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 25 additions & 0 deletions .github/workflows/BenchmarkJacobianproduct.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run gradient benchmarks

on:
pull_request:
types: [labeled, opened, synchronize, reopened]

# Only trigger the benchmark job when you add `run Jacobian product benchmark` label to the PR
jobs:
Benchmark:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'run Jacobian product benchmark')
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1
- uses: julia-actions/julia-buildpkg@latest
- name: Install dependencies
run: julia -e 'using Pkg; pkg"add PkgBenchmark [email protected]"'
- name: Run benchmarks
run: julia -e 'using BenchmarkCI; BenchmarkCI.judge(;baseline = "origin/main", script = joinpath(pwd(), "benchmark", "benchmarks_Jacobianvector.jl"))'
- name: Post results
run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3 changes: 3 additions & 0 deletions benchmark/benchmarks.jl
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ include("jacobian/benchmarks_jprod.jl")
include("jacobian/benchmarks_jprod_residual.jl")
include("jacobian/benchmarks_jtprod.jl")
include("jacobian/benchmarks_jtprod_residual.jl")

include("hessian/benchmarks_hprod.jl")
include("hessian/benchmarks_hprod_lagrangian.jl")
23 changes: 23 additions & 0 deletions benchmark/benchmarks_Hessian.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Include useful packages
using ADNLPModels
using Dates, DelimitedFiles, JLD2, LinearAlgebra, Printf, SparseArrays
using BenchmarkTools, DataFrames
#JSO packages
using NLPModels, OptimizationProblems, SolverBenchmark
# Most likely benchmark with JuMP as well
using JuMP, NLPModelsJuMP

include("problems_sets.jl")
verbose_subbenchmark = false

# Run locally with `tune!(SUITE)` and then `run(SUITE)`
const SUITE = BenchmarkGroup()

include("jacobian/benchmarks_coloring.jl")
include("jacobian/benchmarks_jacobian.jl")
include("jacobian/benchmarks_jacobian_residual.jl")

include("hessian/benchmarks_coloring.jl")
include("hessian/benchmarks_hessian.jl")
include("hessian/benchmarks_hessian_lagrangian.jl")
include("hessian/benchmarks_hessian_residual.jl")
17 changes: 17 additions & 0 deletions benchmark/benchmarks_Hessianvector.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Include useful packages
using ADNLPModels
using Dates, DelimitedFiles, JLD2, LinearAlgebra, Printf, SparseArrays
using BenchmarkTools, DataFrames
#JSO packages
using NLPModels, OptimizationProblems, SolverBenchmark
# Most likely benchmark with JuMP as well
using JuMP, NLPModelsJuMP

include("problems_sets.jl")
verbose_subbenchmark = false

# Run locally with `tune!(SUITE)` and then `run(SUITE)`
const SUITE = BenchmarkGroup()

include("hessian/benchmarks_hprod.jl")
include("hessian/benchmarks_hprod_lagrangian.jl")
18 changes: 18 additions & 0 deletions benchmark/benchmarks_Jacobian.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Include useful packages
using ADNLPModels
using Dates, DelimitedFiles, JLD2, LinearAlgebra, Printf, SparseArrays
using BenchmarkTools, DataFrames
#JSO packages
using NLPModels, OptimizationProblems, SolverBenchmark
# Most likely benchmark with JuMP as well
using JuMP, NLPModelsJuMP

include("problems_sets.jl")
verbose_subbenchmark = false

# Run locally with `tune!(SUITE)` and then `run(SUITE)`
const SUITE = BenchmarkGroup()

include("jacobian/benchmarks_coloring.jl")
include("jacobian/benchmarks_jacobian.jl")
include("jacobian/benchmarks_jacobian_residual.jl")
19 changes: 19 additions & 0 deletions benchmark/benchmarks_Jacobianvector.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Include useful packages
using ADNLPModels
using Dates, DelimitedFiles, JLD2, LinearAlgebra, Printf, SparseArrays
using BenchmarkTools, DataFrames
#JSO packages
using NLPModels, OptimizationProblems, SolverBenchmark
# Most likely benchmark with JuMP as well
using JuMP, NLPModelsJuMP

include("problems_sets.jl")
verbose_subbenchmark = false

# Run locally with `tune!(SUITE)` and then `run(SUITE)`
const SUITE = BenchmarkGroup()

include("jacobian/benchmarks_jprod.jl")
include("jacobian/benchmarks_jprod_residual.jl")
include("jacobian/benchmarks_jtprod.jl")
include("jacobian/benchmarks_jtprod_residual.jl")

0 comments on commit 47ede70

Please sign in to comment.