The GridBee Web Computing Framework Attila Szarvas BME IK 2012. Contents • What is GridBee? • A new computing platform: browsers • The GridBee framework – Goals – Technology overview • Adapting the new technology – Native Client 13/04/2015 BME IK 2012. 2 / 15 Introduction • GridBee is a JavaScript library released under the – participate in grid computing with your browser – everything happens in the browser – no plugins or extensions required • Intended for joining volunteer grids – BOINC middleware: server side scripts, client side native executables for many platforms 13/04/2015 BME IK 2012. 3 / 15 A new grid platform: browsers • • • • • Huge potential user base Platform and OS independent No installing Easy to use Embeddable into any webpage 13/04/2015 BME IK 2012. 4 / 15 A new grid platform: browsers • Usage possibility: alternative BOINC client in form of a web application 13/04/2015 BME IK 2012. 5 / 15 A new grid platform: requirements • • • • • Executing workunits in the background High performance Safe code execution Local persistent storage HTTP communication with grid servers 13/04/2015 BME IK 2012. 6 / 15 Technology: languages • Development language: Haxe – strongly typed, object oriented – compiles into JavaScript • Framework language: JavaScript – all major browsers support it without extensions – browsers optimized for its usage: high performance 13/04/2015 BME IK 2012. 7 / 15 Technology: job execution • Safe execution on a dedicated thread Web Workers Native Client • Sandboxing – only message passing is allowed between the main and worker threads • The browser’s main thread is not blocked 13/04/2015 BME IK 2012. 8 / 15 Technology: CORS • Cross Origin Resource Sharing – boincserver.com must authorize gridbee.com to access its resources 13/04/2015 BME IK 2012. 9 / 15 Technology: Local Storage • Workunits may require local persistence to save checkpoint data • HTML5 Local Storage provides persistent storage for browsers – data stored as key – value pairs – accessed by JavaScript commands – not sent during HTTP requests unlike cookies 13/04/2015 BME IK 2012. 10 / 15 Adopting the new technology • Writing computational programs in JavaScript is tiresome • Cross-compilation of C, C++ code decreases performance tenfold • JavaScript may be suitable for small tasks • For existing projects Chrome’s Native Client may be the solution 13/04/2015 BME IK 2012. 11 / 15 Native Client • Supported by Google Chrome • Native Client SDK with a modified gcc toolchain – compile existing C, C++ code into Native Client executables • Minimal overhead • Safe code execution monitored in runtime 13/04/2015 BME IK 2012. 12 / 15 Native Client: Porting BOINC applications • GridBee offers a Native Client library for porting existing BOINC applications • Seti@Home running in Native Client with minor modifications • GridBee Chrome extension automatically running tasks in the background 13/04/2015 BME IK 2012. 13 / 15 Information about the GridBee framework • Visit our website for more information http://webcomputing.iit.bme.hu/ – Download the source code from GitHub – Download our Chrome extension – Browse the online documentation – Try the working demo 13/04/2015 BME IK 2012. 14 / 15 Information about the GridBee framework http://webcomputing.iit.bme.hu/ • GridBee has been developed by – Imre Szeberényi (Project Coordinator) – Gábor Molnár (Developer) – Gábor Nyíri (Developer) – Henrik Schnell (Developer) – Attila Szarvas (Developer) – Kálmán Tarnay (Developer) 13/04/2015 BME IK 2012. 15 / 15