140 likes | 242 Views
Jeremy Cowles, Eric Heien , Adam Kornafeld , Yusuke Takata , Kenichi Hagihara , Nicolás Alvarez. Overview. PyMW & Summer of Code Recent Enhancements in 0.3 PyBOINC : Distributable Python Interpreter BOINC & PyMW at U.C. Berkeley Future plans for PyMW. Google Summer of Code.
E N D
Jeremy Cowles, Eric Heien, Adam Kornafeld, Yusuke Takata, Kenichi Hagihara, Nicolás Alvarez
Overview • PyMW & Summer of Code • Recent Enhancements in 0.3 • PyBOINC: Distributable Python Interpreter • BOINC & PyMW at U.C. Berkeley • Future plans for PyMW
Google Summer of Code • Proposal accepted via Python Foundation • Worked with Eric Heien as project mentor • Goals: • Improve BOINC integration in PyMW • Reduce barriers to creating BOINC apps • Remove the Python requirement on the Client
PyMW v0.2 Limitations • Need to compile assimilator from C source • Manual project setup via script • Modules, libraries & data bundled by BOINC application, not by work unit • No direct support for BOINC API • Python installation is assumed on client
Enhancements in v0.3 • Pure-Python assimilator • Abstract base class, easy to extend • Leverage existing Python code • Automated project setup • Validates project setup on every execution • Installs required daemons • Installs/upgrades science application
Enhancements in v0.3 • Bundle arbitrary files with work units • Individual Python libraries • Domain-specific data • Customizable work unit generation • Number of target results, output size, etc • Native Python support for BOINC API
PyBOINC Python Interpreter • Collaboration with Nicolás Alvarez • Official Python interpreter (embedded) • BOINC compatible, distributable • Statically compiled for • Windows • Linux • Mac OS X
PyBOINC Features • Customizable standard library • Uses Python’s support for zipped modules • 2.6 bundled with current release • Add or remove components as needed • 3rd party libraries • BOINC API module included by default • Compiled C modules & dynamic libraries
PyMW 0.3 Workflow • Download PyMW & PyBOINC • Write PyMW science application • Install BOINC server & create a project • Run the application: • $ myapp.py –d ~/projects/my_proj • Does it work with real applications?
PyMW & BOINC @ Berkeley CS188: Introduction to Artificial Intelligence Pacman AI Tournament
Pacman AI Tournament • Large framework in Python w/data files • Student teams submit agents • Matches run nightly • Takes ~16 hours to run tournament (serial)
Using PyMW & BOINC • BOINC formulation: • Wrapped tourney framework with PyMW • One match per work unit • 99% orthogonal to PyMW/BOINC • Students can volunteer compute time • PyMW multi-core for debugging • New tourney runs in about 1 hour
Future Plans for PyMW • Security & signing scripts • Support for BOINC Graphic API • Python 3.0 Support • Check-pointing support
Online Resources • PyMWhttp://pymw.sourceforge.net/ • PyMW Documentationhttp://pymw.sourceforge.net/doc/ • PyBOINChttp://bitbucket.org/jeremycowles/pyboinc