Arda Aytekin: POLO: POLicy-Based Optimization Library
Channel: SwedenCpp
Date: 2018-06-15

Thanks to the developments in data storage technologies and wide adoption of Internet-based devices, it has become commonplace to collect, share and store bulks of data. This, in turn, has led to an increase in problem dimensions in data-driven machine- learning applications. To tackle this dimensionality problem, we need new, parallel optimization algorithms that exploit problem structure and make good use of computing resources such as the multiple cores on the CPUs and GPUs as well as different nodes in the cloud. However, algorithm design is a non-trivial process that involves prototyping and testing new ideas, and finally deploying them on different execution engines. In this work, we present POLO — a C++ library 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 to prototype ideas and test them against different options. POLO enables users to move seamlessly from serial to multi-threaded shared-memory to multi-node distributed-memory executors.

Recorded at SwedenCpp, C++ Stockholm 0x0D at the HiQ office in Stockholm (www.hiq.se), 11 June 2018 

Some pictures of the evening:
https://www.meetup.com/swedencpp/photos/28964992