[FEA] More configurable presolve
@rg20 is already working on this.
Since May 24, 2026.
- Dominant language
- Cuda
- Stars
- 1k
- Forks
- 233
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 95
Description
Is your feature request related to a problem? Please describe.
I am working with a very large model that has a complexity structure well suited to presolve. It needs a fair amount of presolve - however it seens the PSLP presolver is hitting a maximum of 60s that is probably hardcoded somewhere as a default in PSLP or in cuOpt.
CPU: Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, threads (physical/logical): 104/208, RAM: 951.33 GiB
CUDA 12.9, device: NVIDIA H100 80GB HBM3 (ID 0), VRAM: 79.18 GiB
CUDA device UUID: 08ffffff9b5503-6fffffffcf-ffffffb877
...
Using PSLP presolver
Maximum time limit of 60.00 seconds reached.
PSLP Presolved problem: ...
PSLP presolve time: 143.67s
Describe the solution you'd like
With this model specifically, PSLP is only removing ~15% of the columns but I know it is possible to presolve out at least ~40% of the columns although it will likely take 5+ minutes to do so.
I would be happy in the short term with a configuration option to allow the maximum presolve time to be specified - really any configuration option that allows presolver to run long enough to get a good reduction on problems like this.
Describe alternatives you've considered
Having more control over presolve in other ways would be great as well - some of our observations regarding PDLP performance is that presolve can make it worse in some cases. I am not familiar with PSLP but if there is a way of passing a detailed configuration file to it, that would be useful since it would give us the ability to find which presolve options are interfering with convergence and disable them at our application layer.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.