Skip to content

feat: precompile the solve of the problems (#373) - #404

Closed
ocots wants to merge 1 commit into
mainfrom
feat/373-precompile
Closed

ocots wants to merge 1 commit into
mainfrom
feat/373-precompile

Conversation

@ocots

@ocots ocots commented Nov 7, 2026

Copy link
Copy Markdown
Member

Written by Claude (Claude Code) at the request of ocots.

Refs #373 (part of #310).

Plan (ct-conventions v0.10.0, ct-agents v0.4.0)

⛔ Stops: the default for users (phase C); any new dependency beyond those of the prototype.

Done when (#373)

  • Measurements: compilation per problem and configuration, cold and warm.
  • A prototype on a few problems, reused across sessions and CI runs, with its install-time cost (reuse across sessions and install cost done; CI runs in phase D).
  • A decision on the default for users, documented.

So far

Main checkout git status --short: empty before.

🤖 Generated with Claude Code

Two extensions run a PrecompileTools workload, solving three problems with
ADNLP + Ipopt and with Exa + MadNLP, so that their compiled code is stored in
the package images. CTSolvers and NLPModels are triggers: the strategies of
CTSolvers for the solvers are extensions of CTSolvers, loaded during the
precompilation of ours only if CTSolvers and NLPModels are among its triggers.
test/extras/compile_time.jl measures each stage of a solve.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ocots

ocots commented Nov 7, 2026

Copy link
Copy Markdown
Member Author

Written by Claude (Claude Code) at the request of ocots.

Closed by decision of ocots: the problems will not be precompiled. The prototype works (a precompiled problem is solved in under 1 s in a fresh session, against 13 to 15 s), but the cost is about 13 s of precompilation and 23 MB of package image per problem and configuration, that is about 13 min and 1.4 GB for the whole collection, paid by every user and in the CI cache, for a gain that matters mainly to the CI. The CI time is addressed instead by testing only what a pull request changes (issue to follow). The branch feat/373-precompile is kept for reference; the measurements are on #373.

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.

1 participant