GLPK/Reviews and benchmarks

Independent reviews and numerical benchmarks are an important part of any optimization solver project. This page lists some independent assessments of GLPK and attempts to give an indication of where GLPK might normally excel.

GLPK is free software &mdash; which may be an advantage or disadvantage depending on your needs and views. Access to the source code allows researchers, in particular, to modify GLPK to suit their needs and to later submit their improvements back to the GLPK maintainer for possible inclusion.

GLPK is unable to match the performance (or price) of the top commercial solvers for very-large scale instances. To give just one example, CPLEX can be expected to be 10–100&times; faster for dual simplex problems. More specific comparisons can be made by reviewing a selection of the current benchmarking surveys.

Solver capabilities
The GLPK solver offers the following methods and features:

All features, except the graph routines, are available through the GLPSOL command-line utility.
 * the revised simplex and primal-dual interior-point methods for non-integer problems
 * the branch-and-bound''' algorithm together with Gomory's mixed integer cuts for integer and mixed integer problems
 * a selection of graph theory routines for graph, flow network, and critical path problems
 * inclusion of the MiniSat solver for boolean satisfiability problems
 * support for arbitrary-precision arithmetic
 * support for ODBC connectivity to interface with relational databases and spreadsheets.

The number of variables and constraints is not specifically limited by GLPK. Large or hard problems may, of course, exceed the available memory or fail to solve in a reasonable time.

Independent reviews

 * &mdash; available for download (requires registration).

Numerical benchmarks
Benchmark tests are deliberately challenging and do not necessarily represent the kinds of problems that users wish to solve.

The official GLPK benchmark results are not posted here in order to avoid the inevitable maintenance delay. They are instead included as part of the official GLPK documentation. In contrast, the Mittelmann benchmarks can be viewed directly &mdash; while noting that some aspects of GLPK functionality, including the graph theory routines, are not covered by Mittelmann.

MIPLIB suite
MIPLIB is a suite of mixed integer test problems from ZIB, currently at version MIPLIB 2003. The GLPK project routinely benchmarks against test sets 2.0 and 3.0 of this test suite. The latest results are reported in the text files doc/miplib2.txt and doc/miplib3.txt in the official GLPK documentation.

netlib suite
The GLPK project routinely benchmarks against the netlib suite from ftp://ftp.netlib.org/lp/data. The latest results are reported in the text file doc/netlib.txt in the official GLPK documentation.

Mittelmann benchmarks
Hans Mittelmann from the School of Math & Stats, Arizona State University maintains a benchmarking site at plato.asu.edu/bench.html. Although GLPK is not listed on the start page, it is included in the appropriate test categories. The benchmarks are conducted using the NEOS server. GLPK features in the following test suites:


 * plato.asu.edu/ftp/lpfree.html &mdash; linear program tests for serial (single threaded) solvers
 * plato.asu.edu/ftp/milpf.html &mdash; mixed integer linear program tests for serial (single threaded) solvers.

Problem size metrics are included with the test results.

NEOS server portal
The NEOS Server for Optimization offers a portal for trialling GLPK. Due to the way the portal is organized, problem instances must be submitted in the GAMS language and not in native MathProg.

Code quality
The GLPK project does not undertake formal code reviews. However users sometimes post unsolicited comments to the GLPK mailing lists. For instance:

"Many thanks to all for such a first class package. The code is some of the best, if not the best, I've ever seen.  I've been sole support for several million lines of other people's code over the years.  So it's a real treat to see something so well written." Source: GLPK help list, 13 January 2011.

Problem/solution metrics
Comment: users can post their problem and solution metrics here (this section will migrate to a stand-alone page as demand dictates).