Skip to content

Latest commit

 

History

History
54 lines (28 loc) · 2.87 KB

File metadata and controls

54 lines (28 loc) · 2.87 KB

PaPILO: Parallel Presolving for MILP

As operations research practitioners, we understand that presolving has become indispensable for modern optimization solvers. Until recently, however, the field lacked a comprehensive, solver-independent solution that could harness parallel computing and multiprecision arithmetic.

PaPILO is a C++ header-only library offering an extensive collection of presolving routines for mixed-integer and linear programming problems. It stands out due to its sophisticated architecture and practical versatility.

Key Algorithmic Features

The library's transaction-based design prevents conflicts during parallel reductions, a critical innovation for concurrent presolving operations. PaPILO effectively utilizes recursive parallelism in computationally demanding routines using Intel's TBB library.

The template-based implementation allows for smooth transitions between precision levels, ranging from standard double precision to quad precision and exact rational arithmetic. This flexibility is essential for numerically challenging instances in which standard floating-point arithmetic could compromise the quality of the solution.

PaPILO implements presolving techniques that operate at different levels of complexity:

  • Fast methods that examine individual constraints or variables.
  • Medium-complexity approaches for row and column analysis.
  • Exhaustive techniques that provide comprehensive problem reduction. The parallelization framework mitigates the computational overhead that has traditionally limited the application of aggressive presolving to large-scale problems.

Practical Impact

The benchmark results demonstrate impressive scalability. Instances requiring over 100 seconds achieve a 7.0x speedup with 32 threads compared to single-threaded execution. The framework can function as either a standalone preprocessing tool or an integrated component.

For the optimization community, PaPILO is more than just a technical advancement. It is a production-ready tool that provides access to sophisticated presolving capabilities and addresses the parallel computing paradigm that defines modern high-performance computing.

PaPILO is available as open source under the Apache 2.0 license and is part of the SCIP Optimization Suite. It merits consideration for any serious mixed integer programming implementation.

References

#OperationsResearch
#Optimization 
#MixedIntegerProgramming 
#ParallelComputing 
#SCIP 
#OpenSource

PaPILO: Parallel Presolving for MILP