Skip to content

Commit 64aff00

Browse files
committed
Update documentation with details of HiPO
1 parent 8715e86 commit 64aff00

File tree

3 files changed

+63
-14
lines changed

3 files changed

+63
-14
lines changed

docs/src/options/definitions.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
- Default: "choose"
77

88
## [solver](@id option-solver)
9-
- Solver option: "simplex", "choose", "ipm" or "pdlp". If "simplex"/"ipm"/"pdlp" is chosen then, for a MIP (QP) the integrality constraint (quadratic term) will be ignored
9+
- Solver option: "simplex", "choose", "ipm", "hipo" or "pdlp". If "simplex"/"ipm"/"hipo"/"pdlp" is chosen then, for a MIP (QP) the integrality constraint (quadratic term) will be ignored
1010
- Type: string
1111
- Default: "choose"
1212

@@ -414,6 +414,22 @@
414414
- Range: {0, 2147483647}
415415
- Default: 2147483647
416416

417+
## [hipo\_system](@id option-hipo-system)
418+
- Type of Newton system for HiPO: "augmented", "normaleq" or "choose"
419+
- Type: string
420+
- Default: "choose"
421+
422+
## [hipo\_parallel\_type](@id option-hipo-parallel)
423+
- Type of parallelism for HiPO: "tree", "node", "both"
424+
- Type: string
425+
- Default: "both"
426+
427+
## hipo\_block\_size
428+
- Block size for dense linear algebra within HiPO
429+
- Type: integer
430+
- Range: {0, 2147483647}
431+
- Default: 128
432+
417433
## pdlp\_native\_termination
418434
- Use native termination for PDLP solver: Default = false
419435
- Type: boolean

docs/src/parallel.md

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
HiGHS currently has limited opportunities for exploiting parallel
66
computing. When using a CPU, these are currently restricted to the
7-
dual simplex solver for LP, and the MIP solver. Details of these and
8-
future plans are set out below. HiGHS has an implementation of a first
9-
order method (PDLP) for solving LPs that can exploit the availability of a
10-
[GPU](@ref highs-gpu).
7+
dual simplex solver for LP, the factorisation-based interior point solver,
8+
and the MIP solver. Details of these and future plans are set out below.
9+
HiGHS has an implementation of a first order method (PDLP) for solving LPs
10+
that can exploit the availability of a [GPU](@ref highs-gpu).
1111

1212
By default, when running in parallel, HiGHS will use half the
1313
available threads on a machine. This number can be modified by setting
@@ -47,14 +47,32 @@ clique tables, and when the interior point solver is used to compute
4747
the analytic centre. This parallelism is always advantageous, so is
4848
performed regardless of the value of the [parallel](@ref) option.
4949

50+
## IPM
51+
52+
The interior point solver HiPO uses multiple threads to process the
53+
elimination tree during the multifrontal factorisation (_tree level_)
54+
and to perform the dense factorisation of the frontal matrices
55+
(_node level_).
56+
57+
If the [parallel](@ref) option is set "on", the level of parallelism is
58+
determined by the [hipo\_parallel\_type](@ref option-hipo-parallel) option,
59+
which can be "tree" for tree level only, "node" for node level only, or
60+
"both" for both levels.
61+
62+
If the [parallel](@ref) option is set "choose", the solver selects which
63+
level to use based on a heuristic. When the [parallel](@ref) option is set
64+
"choose" or "off", the value of the hipo\_parallel\_type option is ignored.
65+
66+
5067
## Future plans
5168

5269
The MIP solver has been written with parallel tree search in mind. Some
5370
work has started (Feb 2025), and it is hoped that a prototype solver
5471
will be available during 2025.
5572

56-
Development of a new parallel interior point solver began 2023, and a
57-
prototype solver is expected to be be available during 2025.
73+
Multi-threading within HiPO will be extended to other phases of the solver,
74+
including the solve phase of the factorisation and the process of assemblying
75+
the matrices.
5876

5977
First-order solvers for LP are still very much in their infancy, and
6078
are not robust. Hence the availability of a PDLP solver for LP is

docs/src/solvers.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,30 @@ J. A. J. Hall, Mathematical Programming Computation, 10 (1), 119-142,
2626

2727
#### Interior point
2828

29-
HiGHS has one interior point (IPM) solver based on the preconditioned conjugate gradient method, as discussed in
29+
HiGHS has two interior point (IPM) solvers:
3030

31-
_Implementation of an interior point method with basis
32-
preconditioning_, Mathematical Programming Computation, 12, 603-635, 2020. [DOI:
33-
10.1007/s12532-020-00181-8](https://link.springer.com/article/10.1007/s12532-020-00181-8).
31+
* IPX is based on the preconditioned conjugate gradient method, as discussed in
3432

35-
This solver is serial. An interior point solver based on direct factorization is being developed.
33+
_Implementation of an interior point method with basis
34+
preconditioning_, Mathematical Programming Computation, 12, 603-635, 2020. [DOI:
35+
10.1007/s12532-020-00181-8](https://link.springer.com/article/10.1007/s12532-020-00181-8).
3636

37-
Setting the option [__solver__](@ref option-solver) to "ipm" forces the IPM solver to be used
37+
This solver is serial.
38+
39+
Setting the option [__solver__](@ref option-solver) to "ipm" forces the IPX solver to be used
40+
41+
* HiPO is based on a direct factorisation, as discussed in
42+
43+
_A factorisation-based regularised interior point method using the augmented system_, F. Zanetti and J. Gondzio, 2025,
44+
[available on arxiv](https://arxiv.org/abs/2508.04370)
45+
46+
This solver is parallel.
47+
48+
Setting the option [__solver__](@ref option-solver) to "hipo" forces the HiPO solver to be used.
49+
50+
The [hipo\_system](@ref option-hipo-system) option can be used to select the approach to use when solving the Newton systems
51+
within the interior point solver: select "augmented" to force the solver to use the augmented system, "normaleq" for normal
52+
equations, or "choose" to leave the choice to the solver.
3853

3954
#### Primal-dual hybrid gradient method
4055

@@ -53,7 +68,7 @@ The HiGHS MIP solver uses established branch-and-cut techniques
5368
## QP
5469

5570
The HiGHS solver for convex QP problems uses an established primal
56-
active set method. The new interior point solver will also be able to
71+
active set method. The new interior point solver HiPO will soon be able to
5772
solve convex QP problems.
5873

5974

0 commit comments

Comments
 (0)