The GridBee Web Computing Framework

advertisement
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
Download