OCDCLGSEMLOct 8, 2018

POLO: a POLicy-based Optimization library

arXiv:1810.03417v13 citations
AI Analysis

This provides a tool for researchers and practitioners in optimization and machine learning to efficiently design and test parallel algorithms, though it is incremental as it builds on existing optimization concepts with a new software framework.

The authors tackled the challenge of prototyping and implementing large-scale parallel optimization algorithms by developing POLO, a C++ library that enables users to implement state-of-the-art asynchronous parallel optimization algorithms in just a few lines of code, with demonstrated results on shared and distributed-memory computing architectures.

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 in just a few lines of code and report experiment results from shared and distributed-memory computing architectures. We provide both POLO and POLO.jl, a wrapper around POLO written in the Julia language, at https://github.com/pologrp under the permissive MIT license.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes