Python Optimization Asynchronous Plumbing.
Project Links
Meta
Author: David Bindel
Classifiers
Development Status
- 3 - Alpha
Intended Audience
- Developers
License
- OSI Approved :: MIT License
Programming Language
- Python :: 2.7
- Python :: 3
- Python :: 3.2
- Python :: 3.3
- Python :: 3.4
POAP: Plumbing for Optimization with Asynchronous Parallelism
POAP provides an event-driven framework for building and combining asynchronous optimization strategies. A typical optimization code written with POAP might look like:
from poap.strategy import FixedSampleStrategy
from poap.strategy import CheckWorkStrategy
from poap.controller import ThreadController
from poap.controller import BasicWorkerThread
# samples = list of sample points ...
controller = ThreadController()
sampler = FixedSampleStrategy(samples)
controller.strategy = CheckWorkerStrategy(controller, sampler)
for i in range(NUM_WORKERS):
t = BasicWorkerThread(controller, objective)
controller.launch_worker(t)
result = controller.run()
print 'Best result: {0} at {1}'.format(result.value, result.params)
The basic ingredients are a controller capable of asking workers to run function evaluations and a strategy for choosing where to sample. The strategies send the controller proposed actions, which the controller then accepts or rejects; the controller, in turn, informs the strategies of relevant events through callback functions.
Most users will probably want to provide their own strategies, controllers, or both.
Developers
Build Status:
0.1.26
Feb 22, 2017
0.1.25
Nov 04, 2016
0.1.24
Jul 28, 2016
0.1.18
Jul 20, 2016
0.1.17
Jul 18, 2016
0.1.16
Jun 23, 2016
0.1.15
Jun 21, 2016
0.1.14
Jun 15, 2016
0.1.13
Jun 27, 2015
0.1.12
Jun 27, 2015
0.1.11
Jun 26, 2015
0.1.10
Jun 25, 2015
0.1.9
Jun 24, 2015
0.1.8
Jun 22, 2015
0.1.7
Jun 21, 2015
0.1.6
Jun 21, 2015
0.1.5
Jun 19, 2015
0.1.4
Jun 17, 2015
0.1.3
Jun 15, 2015
0.1.2
Jun 03, 2015
Wheel compatibility matrix
Files in release
No dependencies