PAPILO: A Parallel Presolving Library for Integer and Linear Optimization with Multiprecision Support

INFORMS JOURNAL ON COMPUTING(2023)

引用 0|浏览7
暂无评分
摘要
Presolving has become an essential component of modern mixed integer program (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 pre solving routines for MIP and linear programming 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 Threading Building Blocks library aids PAPILO in efficiently exploiting 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.
更多
查看译文
关键词
presolving,parallel computing,mixed integer programming,linear programming,multi-precision computation
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要