PaPILO: A Parallel Presolving Library for Integer and Linear Programming with Multiprecision Support

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Gleixner, Ambros, Gottwald, Leona, Hoen, Alexander
Format: Preprint
Published: 2022
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866914721252245504
author Gleixner, Ambros
Gottwald, Leona
Hoen, Alexander
author_facet Gleixner, Ambros
Gottwald, Leona
Hoen, Alexander
contents Presolving has become an essential component of modern MIP solvers both in terms of computational performance and numerical robustness. In this paper, we present PaPILO, a new C++ header-only library that provides a large set of presolving routines for MIP and LP problems from the literature. The creation of PaPILO was motivated by the current lack of (a) solver-independent implementations that (b) exploit parallel hardware, and (c) support multiprecision arithmetic. Traditionally, presolving is designed to be fast. Whenever necessary, its low computational overhead is usually achieved by strict working limits. PaPILO's parallelization framework aims at reducing the computational overhead also when presolving is executed more aggressively or is applied to large-scale problems. To rule out conflicts between parallel presolve reductions, PaPILO uses a transaction-based design. This helps to avoid both the memory-intensive allocation of multiple copies of the problem and special synchronization between presolvers. Additionally, the use of Intel's TBB library aids PaPILO to efficiently exploit recursive parallelism within expensive presolving routines such as probing, dominated columns, or constraint sparsification. We provide an overview of PaPILO's capabilities and insights into important design choices.
format Preprint
id arxiv_https___arxiv_org_abs_2206_10709
institution arXiv
publishDate 2022
record_format arxiv
spellingShingle PaPILO: A Parallel Presolving Library for Integer and Linear Programming with Multiprecision Support
Gleixner, Ambros
Gottwald, Leona
Hoen, Alexander
Optimization and Control
Presolving has become an essential component of modern MIP solvers both in terms of computational performance and numerical robustness. In this paper, we present PaPILO, a new C++ header-only library that provides a large set of presolving routines for MIP and LP problems from the literature. The creation of PaPILO was motivated by the current lack of (a) solver-independent implementations that (b) exploit parallel hardware, and (c) support multiprecision arithmetic. Traditionally, presolving is designed to be fast. Whenever necessary, its low computational overhead is usually achieved by strict working limits. PaPILO's parallelization framework aims at reducing the computational overhead also when presolving is executed more aggressively or is applied to large-scale problems. To rule out conflicts between parallel presolve reductions, PaPILO uses a transaction-based design. This helps to avoid both the memory-intensive allocation of multiple copies of the problem and special synchronization between presolvers. Additionally, the use of Intel's TBB library aids PaPILO to efficiently exploit recursive parallelism within expensive presolving routines such as probing, dominated columns, or constraint sparsification. We provide an overview of PaPILO's capabilities and insights into important design choices.
title PaPILO: A Parallel Presolving Library for Integer and Linear Programming with Multiprecision Support
topic Optimization and Control
url https://arxiv.org/abs/2206.10709