Skip to content

Conversation

@ChrisRackauckas
Copy link
Member

This is @arnavk23's commits rebased to latest master and setup as a PR to master.

alonsoC1s and others added 30 commits August 6, 2025 05:20
…ks are run"

This reverts commit 5229720.
Since the sandbox is run as a user and not root, packages cannot be
installed due to insufficient permissions.
…ndling

- Add chunked processing (50 problems per chunk) to manage memory usage
- Implement comprehensive error handling with try/catch blocks
- Add time limits (300s per problem) to prevent hanging
- Force garbage collection between chunks to reduce memory pressure
- Add detailed progress logging with chunk and problem tracking
- Handle both problem loading and solving failures gracefully
- Apply improvements to all CUTEst benchmark files:
  * CUTEst_bounded.jmd (666 + 244 problems)
  * CUTEst_unbounded.jmd (285 + 114 problems)
  * CUTEst_quadratic.jmd (252 problems)
  * CUTEst_unconstrained.jmd (286 problems)

This resolves CI memory issues (ProcessSignaled(9)) while maintaining
comprehensive testing of all CUTEst problem sets.
- Reduce chunk size from 5 to 3 problems per chunk
- Lower variable limit from 100 to 50 variables per problem
- Reduce maxiters from 1e6 to 1000 iterations
- Keep maxtime at 60 seconds per problem
- Add aggressive problem size filtering

These changes should prevent ProcessSignaled(9) OOM errors in CI
while still testing a substantial number of CUTEst problems.
@thazhemadam
Copy link
Member

thazhemadam commented Aug 13, 2025

Yes. I've tried updating the rootfs image and it seems to no longer complain about gfortran being missing.1
I just need to clean it up a bit and will push to this branch.

Footnotes

  1. https://buildkite.com/julialang/scimlbenchmarks-dot-jl/builds/3668#01989c83-a549-49b7-a131-776cf2e975ad

@ChrisRackauckas
Copy link
Member Author

@arnavk23 it looks like it gets stuck. How long did that test set take locally? 2 days?

@arnavk23
Copy link
Contributor

No, it was done in around 3 hours.

@ChrisRackauckas
Copy link
Member Author

Did you run this same problem? All 6 succeeded? I don't see how because it had forward diff before and that is guaranteed to fail over the binaries

@arnavk23
Copy link
Contributor

build_benchmark.sh -

# Check for CUTEst benchmarks and verify gfortran
if [[ "${1}" == *OptimizationCUTEst* ]]; then
	echo "--- :hammer: Setting up CUTEst environment"
	echo "Checking gfortran availability..."
	which gfortran || echo "gfortran not found in PATH"
	gfortran --version || echo "gfortran not working"
	export FC=gfortran
	export F77=gfortran
	export F90=gfortran
	echo "Fortran compiler environment variables set"
fi

@ChrisRackauckas
Copy link
Member Author

Okay it has completely stalled with


[ Info: Problem 3/17: HS35
--
  | ┌ Warning: common maxiters argument is currently not used by Feasibility
  | │
  | │ Subject to:
  | │
  | │ Nonlinear
  | │ . Set number of iterations via optimizer specific keyword arguments.
  | └ @ OptimizationMOI /cache/julia-buildkite-plugin/depots/5b300254-1738-4989-ae0a-f4d2d937f953/packages/OptimizationMOI/aKPgG/src/OptimizationMOI.jl:85
  | [ Info: ✓ Solved HS35 with Ipopt - Status: Success
  | [ Info: Completed chunk, memory usage cleaned up
  | [ Info: Processing chunk 2/6: problems 4-6
  | [ Info: Problem 4/17: HS106
  | ┌ Warning: common maxiters argument is currently not used by Feasibility
  | │
  | │ Subject to:
  | │
  | │ Nonlinear
  | │ . Set number of iterations via optimizer specific keyword arguments.
  | └ @ OptimizationMOI /cache/julia-buildkite-plugin/depots/5b300254-1738-4989-ae0a-f4d2d937f953/packages/OptimizationMOI/aKPgG/src/OptimizationMOI.jl:85


and now it's 3 days at that same spot. I think it's safe to say it's not printing anything else. Here's what we can do. We can merge this as it's now at least a major step forward in that it is actually able to run again, but it's still the same problem that it originally had so it's not complete. At least this makes it easier to work on though.

@ChrisRackauckas ChrisRackauckas merged commit bbfc8f3 into master Aug 15, 2025
0 of 2 checks passed
@ChrisRackauckas ChrisRackauckas deleted the cutest_local branch August 15, 2025 09:37
@ChrisRackauckas
Copy link
Member Author

@arnavk23 and you get 6 PDFs from that?

@arnavk23
Copy link
Contributor

@ChrisRackauckas I was able to get with the original AutoForwardDiff code only.

@arnavk23
Copy link
Contributor

@ChrisRackauckas I am still trying to see why this is stalling.

@ChrisRackauckas
Copy link
Member Author

@ChrisRackauckas I was able to get with the original AutoForwardDiff code only.

I don't see how. It's not possible for forwarddiff the Fortran binaries, so you couldn't've been differentiating these examples.

@arnavk23
Copy link
Contributor

@ChrisRackauckas I saw you are doing this on Julia 10.10, try it instead on Julia 10.9

@ChrisRackauckas
Copy link
Member Author

SciML benchmarks only runs on LTS forward. Current LTS is v10.10. But that also won't change this, fundamentally it's impossible for ForwardDiff to differentiate a fortran binary, it's not even possible in theory.

@arnavk23
Copy link
Contributor

arnavk23 commented Aug 15, 2025

@ChrisRackauckas , I meant the current one with FiniteDiff. Was looking through the code.

@ChrisRackauckas
Copy link
Member Author

Can you show the PDFs built with it?

@arnavk23
Copy link
Contributor

@ChrisRackauckas It is working, taking some time. Got unconstrained. Further it is your decision as to if I continue on this or not.
CUTEst_unconstrained.pdf

@ChrisRackauckas
Copy link
Member Author

That one ran before, but the issue there is most of them give failures.

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.

6 participants