Skip to content

[FEA] Allow user to control solver method used at root node #792

@KyleBooth

Description

@KyleBooth

Describe the bug
I am using the Python API. My aim is to strictly use PDLP to solve the root node relaxation of a MIP problem. I am using the SolverMethod setting to set the method as PDLP, but the solver still uses barrier and simplex, which is unexpected.

Steps/Code to reproduce bug
Use:
settings.set_parameter("method", SolverMethod.PDLP)
In the Python API and invoke a solve. Solver log excerpt:

Solving LP root relaxation
Scaling matrix. Maximum column norm 3.044447e+00, minimum column norm 3.162278e-01
Dual Simplex Phase 1
Dual feasible solution found.
Dual Simplex Phase 2
 Iter     Objective           Num Inf.  Sum Inf.     Perturb  Time
    1 +3.1466918879784025e+04   98662 4.76112184e+09 0.00e+00 1.49
 1000 +3.1466918879784025e+04   98543 3.63115069e+09 0.00e+00 2.30
 2000 +3.1466918879784025e+04   98365 2.63039454e+09 0.00e+00 3.15
 3000 +3.1466918879784025e+04   98159 3.03303142e+10 0.00e+00 3.99
 4000 +3.1466918879784025e+04   98047 7.84284729e+11 5.34e-08 5.98
Running concurrent

PDLP finished
Status: Time Limit   Objective: 3.14669189e+04  Iterations: 1160  Time: 1.124s, Total time 1.170s
Barrier finished in 2.87 seconds
Concurrent time:  2.870s, total time 2.870s

Environment details (please complete the following information):
cuOpt version: 25.12.0
CPU: AMD EPYC 7R32, threads (physical/logical): 8/16, RAM: 37.89 GiB
CUDA 12.9, device: NVIDIA A10G (ID 0), VRAM: 21.99 GiB

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions