POLO: a POLicy-based Optimization library
Arda Aytekin, Martin Biel, Mikael Johansson

TL;DR
POLO is a flexible, efficient C++ library designed for large-scale parallel optimization research, enabling easy prototyping, evaluation across architectures, and seamless transition from serial to distributed computing.
Contribution
It introduces a policy-based design for optimization algorithms, facilitating code reuse, customization, and rapid development across diverse parallel computing platforms.
Findings
Supports implementation of state-of-the-art asynchronous algorithms
Enables seamless transition from serial to distributed execution
Provides a Julia wrapper for broader accessibility
Abstract
We present POLO --- a C++ library for large-scale parallel optimization research that emphasizes ease-of-use, flexibility and efficiency in algorithm design. It uses multiple inheritance and template programming to decompose algorithms into essential policies and facilitate code reuse. With its clear separation between algorithm and execution policies, it provides researchers with a simple and powerful platform for prototyping ideas, evaluating them on different parallel computing architectures and hardware platforms, and generating compact and efficient production code. A C-API is included for customization and data loading in high-level languages. POLO enables users to move seamlessly from serial to multi-threaded shared-memory and multi-node distributed-memory executors. We demonstrate how POLO allows users to implement state-of-the-art asynchronous parallel optimization algorithms…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
