POLO:基于POLICY的Optimization库
POLO: a POLicy-based Optimization library
摘要:
我们提出POLO -一个C++库的大规模并行优化研究,强调易用性,灵活性和效率的算法设计。它使用多重继承和模板编程将算法分解为基本策略并促进代码重用。由于算法和执行策略之间的明确分离,它为研究人员提供了一个简单而强大的平台,用于原型设计,在不同的并行计算架构和硬件平台上评估它们,并生成紧凑而高效的生产代码。包括C-API,用于高级语言的定制和数据加载。POLO使用户能够无缝地从串行迁移到多线程共享内存和多节点分布式内存执行器。我们演示了如何POLO允许用户实现国家的最先进的异步并行优化算法在短短几行代码和报告实验结果从共享和分布式内存计算架构。我们在https://github.com/pologrp上提供了POLO和POLO.jl,后者是用Julia语言编写的POLO的包装器,使用的是MIT许可证。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。