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 2
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 3
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 4
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 5
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 6
PyBOINC Python Interpreter Collaboration with Nicolás Alvarez Official Python interpreter (embedded) BOINC compatible, distributable Statically compiled for Windows Linux Mac OS X 7
PyBOINC Features Customizable standard library Uses Python’s support for zipped modules 2.6 bundled with current release Add or remove components as needed 3 rd party libraries BOINC API module included by default Compiled C modules & dynamic libraries 8
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? 9
PyMW & Berkeley 10 CS188: Introduction to Artificial Intelligence Pacman AI Tournament
Large framework in Python w/data files Student teams submit agents Matches run nightly Takes ~16 hours to run tournament (serial) 11
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 12
Future Plans for PyMW Security & signing scripts Support for BOINC Graphic API Python 3.0 Support Check-pointing support 13
Online Resources PyMW PyMW Documentation PyBOINC 14