Skip to content

MIT-Lu-Lab/CuPDLPx.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CuPDLPx.jl

Julia interface for cuPDLPx.

Installation

CuPDLPx.jl is available from the Julia General registry:

pkg> add CuPDLPx

Use with JuMP

To use CuPDLPx with JuMP, use CuPDLPx.Optimizer:

using JuMP, CuPDLPx
model = Model(CuPDLPx.Optimizer)

Setting solver parameters

CuPDLPx.jl supports setting solver parameters via set_optimizer_attribute.

using JuMP
using CuPDLPx

model = read_from_file("2club200v15p5scn.mps.gz")
undo = relax_integrality(model)

println("Read MPS succeed.")
set_optimizer(model, CuPDLPx.Optimizer)

set_optimizer_attribute(model, "verbose", true)
set_optimizer_attribute(model, "l_inf_ruiz_iterations", 0)
set_optimizer_attribute(model, "iteration_limit", 200)

optimize!(model)
println(solution_summary(model))

Supported parameters

All of the following attributes are supported.

PDHG parameters

name type default
l_inf_ruiz_iterations Int 10
has_pock_chambolle_alpha Bool true
pock_chambolle_alpha Float64 1.0
bound_objective_rescaling Bool true
verbose Bool false
termination_evaluation_frequency Int 200
sv_max_iter Int 5000
sv_tol Float64 1e-4
reflection_coefficient Float64 1.0
feasibility_polishing Bool false
presolve Bool true
artificial_restart_threshold Float64 0.36
sufficient_reduction_for_restart Float64 0.2
necessary_reduction_for_restart Float64 0.5
k_p Float64 0.99
k_i Float64 0.01
k_d Float64 0.0
i_smooth Float64 0.3

Termination criteria

name type default
eps_optimal_relative Float64 1e-4
eps_feasible_relative Float64 1e-4
eps_feas_polish_relative Float64 1e-6
eps_infeasible Float64 1e-10
time_sec_limit Float64 3600.0
iteration_limit Int INT32_MAX

About

Julia interface for cuPDLPx.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages