Skip to content

Commit 8d0f108

Browse files
committed
Export MKLPardisoKKTSolver, fix printing
- Add paper to citing section
1 parent 104a6ba commit 8d0f108

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

docs/src/citing.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,18 @@ The following paper describes the algorithm used for our clique graph based merg
3131
issn = {2405-8963},
3232
journal = {IFAC-PapersOnLine},
3333
}
34-
3534
```
3635
A preprint can be downloaded [here](https://arxiv.org/abs/1911.05615).
36+
37+
The acceleration strategy is described in this paper:
38+
```
39+
@InProceedings{Garstka_2022,
40+
title={Safeguarded Anderson acceleration for parametric nonexpansive operators},
41+
author={Garstka, Michael and Cannon, Mark and Goulart, Paul},
42+
booktitle={2022 European Control Conference (ECC)},
43+
pages={435--440},
44+
year={2022},
45+
organization={IEEE}
46+
}
47+
```
48+
A preprint can be downloaded [here](https://arxiv.org/pdf/2208.02847).

src/linear_solver/kktsolver_pardiso.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using .Pardiso: Pardiso, set_solver!, pardisoinit, set_phase!, set_iparm!, set_msglvl!, get_iparm, pardiso, PardisoSolver, MKLPardisoSolver, get_nprocs, set_nprocs!, set_matrixtype!, set_perm!
22
using AMD
3-
export PardisoDirectKKTSolver, PardisoIndirectKKTSolver, MKLPardisoSolver
3+
export PardisoDirectKKTSolver, PardisoIndirectKKTSolver, MKLPardisoKKTSolver
44

55
abstract type AbstractPardisoKKTSolver <: AbstractKKTSolver end
66

src/printing.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function print_header(ws::COSMO.Workspace{T}) where {T <: AbstractFloat}
2525
if ws.ci.decompose && ws.ci.num_decomposable > 0
2626
println("Decomp: Num of original PSD cones: $(ws.ci.num_psd_cones)\n" * " "^10*"Num decomposable PSD cones: $(ws.ci.num_decomposable)\n" * " "^10*"Num PSD cones after decomposition: $(ws.ci.num_decom_psd_cones)\n" * " "^10*"Merge Strategy: $(stringify(ws.settings.merge_strategy))")
2727
end
28-
println("Settings: ϵ_abs = $(@sprintf("%.1e", settings.eps_abs)), ϵ_rel = $(@sprintf("%.1e", settings.eps_rel)),\n" * " "^10 * "ϵ_prim_inf = $(@sprintf("%.1e", settings.eps_prim_inf)), ϵ_dual_inf = $(@sprintf("%.1e", settings.eps_dual_inf)),\n" * " "^10 * "ρ = $(@sprintf("%.3g", settings.rho)), σ = $(@sprintf("%.3g", settings.sigma)), α = $(@sprintf("%.3g", settings.alpha)),\n" * " "^10 * "max_iter = $(settings.max_iter),\n" * " "^10 * "scaling iter = $(settings.scaling) ($(scaling_status)),\n" * " "^10 * "check termination every $(settings.check_termination) iter,\n" * " "^10 * "check infeasibility every $(settings.check_infeasibility) iter,\n" * " "^10 * "KKT system solver: $(print_lin_sys(settings.kkt_solver.ObjectType))")
28+
println("Settings: ϵ_abs = $(@sprintf("%.1e", settings.eps_abs)), ϵ_rel = $(@sprintf("%.1e", settings.eps_rel)),\n" * " "^10 * "ϵ_prim_inf = $(@sprintf("%.1e", settings.eps_prim_inf)), ϵ_dual_inf = $(@sprintf("%.1e", settings.eps_dual_inf)),\n" * " "^10 * "ρ = $(@sprintf("%.3g", settings.rho)), σ = $(@sprintf("%.3g", settings.sigma)), α = $(@sprintf("%.3g", settings.alpha)),\n" * " "^10 * "max_iter = $(settings.max_iter),\n" * " "^10 * "scaling iter = $(settings.scaling) ($(scaling_status)),\n" * " "^10 * "check termination every $(settings.check_termination) iter,\n" * " "^10 * "check infeasibility every $(settings.check_infeasibility) iter,\n" * " "^10 * "KKT system solver: $(print_lin_sys(settings.kkt_solver))")
2929

3030
print_accelerator(ws.accelerator, ws.settings.safeguard, ws.settings.safeguard_tol, tab = 10)
3131

@@ -75,7 +75,7 @@ function print_result(status::Symbol, iter::Int, safeguarding_iter::Int, cost::T
7575
println("Optimal objective: $(@sprintf("%.4g", cost))\nRuntime: $(round.(rt; digits = 3))s ($(round.(rt * 1000; digits = 2))ms)\n")
7676
nothing
7777
end
78-
78+
print_lin_sys(s::OptionsFactory) = print_lin_sys(s.ObjectType)
7979
function print_lin_sys(s::Type{<:AbstractKKTSolver})
8080
lin_sys_dict = Dict("QdldlKKTSolver" => "QDLDL", "CholmodKKTSolver" => "CHOLMOD", "PardisoDirectKKTSolver" => "Pardiso (direct)", "PardisoIndirectKKTSolver" => "Pardiso (indirect)", "MKLPardisoKKTSolver" => "MKL Pardiso")
8181
return get(lin_sys_dict, string(s), string(s))

0 commit comments

Comments
 (0)