Update CUTEst benchmarks to the Optimization.jl interface#1594
Update CUTEst benchmarks to the Optimization.jl interface#1594andoriyaprashant wants to merge 4 commits into
Conversation
|
Hey @ChrisRackauckas This PR is ready for review. I've verified that the benchmark weaves successfully and generates the expected output locally. |
|
No, please keep the split, having them all in one will make it difficult to read and will likely time out. |
@ChrisRackauckas Yeah, that makes sense. I updated the PR to keep the CUTEst benchmarks split across the original benchmark pages instead of combining everything into one large weave target |
There was a problem hiding this comment.
Why is this a separate file?
There was a problem hiding this comment.
This is separate so each CUTEst problem/solver run happens in its own Julia process.
Some CUTEst cases can hang, segfault, OOM or ignore maxtime and if the solve runs directly inside the .jmd weave process then one bad case can stall or kill the whole benchmark build. Keeping this as a small child process entrypoint lets the parent benchmark kill just that solve after the timeout and record it as TIMEOUT/CRASHED/FAILED, while the rest of the benchmark continues.
The parent benchmark calls it with the benchmark folder’s active project, roughly like:
julia --project=benchmarks/OptimizationCUTEst benchmarks/OptimizationCUTEst/solve_cutest_case.jl ROSENBR LBFGS|
Rebase, it had an issue with detecting changes. |
8126cac to
4ade4a5
Compare
|
Hi @ChrisRackauckas please let me know if any further changes are required |
|
Runners having issues. Not entirely sure what that is. |
@ChrisRackauckas Yeah From the logs, it looks like the failure happens during checkout before any benchmark code is executed, so it doesn't seem to be caused by the changes in this PR. |
|
Found it, an old job was still running that oomed the machine and it needed a restart 😅 |
Haha, glad you found it 😄. Please let me know if you'd like any further changes or improvements from my side. Happy to make them. |
|
Hey @ChrisRackauckas could you please review this pull request when you get a chance I noticed that the timeline mentions June 26, so I wanted to check if there are any changes needed. If there are any, I'll make them and submit a request to extend the timeline if necessary, then update the PR based on your feedback. |
…chmarks.jl into cutest-optimization-benchmarks
|
Hi @ChrisRackauckas, I've updated the PR by syncing it with the latest Could you please approve the workflows and take another look when you get a chance |
Summary
Adds a single CUTEst benchmark using the Optimization.jl interface through
OptimizationNLPModels.
This replaces the older fragmented CUTEst benchmark files with one benchmark that covers:
Each problem/solver pair is run in a separate Julia process so stalls, crashes and solver
failures are recorded without hanging the SciMLBenchmarks build.
Details
OptimizationNLPModels.OptimizationProblemto convert CUTEst/NLPModels problems to the Optimization.jl interface.Validation
Locally ran:
The benchmark weaves successfully and generates markdown/plots.
Addresses #935
Related small-grant claim: SciML/sciml.ai#236