Upload
carley-allmand
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
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
18/04/23 2BME IK 2012. / 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
18/04/23 3BME IK 2012. / 15
A new grid platform: browsers
• Huge potential user base• Platform and OS independent• No installing• Easy to use• Embeddable into any webpage
18/04/23 4BME IK 2012. / 15
A new grid platform: browsers
• Usage possibility: alternative BOINC client in form of a web application
18/04/23 5BME IK 2012. / 15
A new grid platform: requirements
• Executing workunits in the background• High performance• Safe code execution• Local persistent storage• HTTP communication with grid servers
18/04/23 6BME IK 2012. / 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
18/04/23 7BME IK 2012. / 15
Technology: job execution
• Safe execution on a dedicated thread
• Sandboxing– only message passing is allowed between the
main and worker threads
• The browser’s main thread is not blocked
18/04/23 8BME IK 2012. / 15
Web Workers Native Client
Technology: CORS
• Cross Origin Resource Sharing– boincserver.com must authorize gridbee.com to
access its resources
18/04/23 9BME IK 2012. / 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
18/04/23 10BME IK 2012. / 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
18/04/23 11BME IK 2012. / 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
18/04/23 12BME IK 2012. / 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
18/04/23 13BME IK 2012. / 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
18/04/23 14BME IK 2012. / 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)
18/04/23 15BME IK 2012. / 15