Pando: Personal Volunteer Computing in Browsers Erick Lavoie, Laurie Hendren Frederic Desprez Miguel Correia McGill University, Montreal, Canada INRIA Grenoble Rhône-Alpes INESC-ID
[email protected] Grenoble, France Lisboa, Portugal
[email protected] [email protected] [email protected] Abstract In this paper, we therefore present Pando, a new tool that can The large penetration and continued growth in ownership of per- leverage a dynamically varying number of failure-prone personal sonal electronic devices represents a freely available and largely devices contributed by volunteers, to parallelize the application of a untapped source of computing power. To leverage those, we present function on a stream of values, by using the devices’ browsers. Pando, a new volunteer computing tool based on a declarative con- Pando is based on a declarative concurrent programming para- current programming model and implemented using JavaScript, digm [99] which greatly simplifies reasoning about concurrent WebRTC, and WebSockets. This tool enables a dynamically varying processes: it abstracts the non-determinism in the execution by number of failure-prone personal devices contributed by volunteers making it non-observable. This paradigm has already enjoyed great to parallelize the application of a function on a stream of values, practical successes with the popular MapReduce [38] and Unix by using the devices’ browsers. We show that Pando can provide pipelining [56] programming models. We show for the first time it throughput improvements compared to a single personal device, is also effective in personal volunteer computing tools. on a variety of compute-bound applications including animation Pando abstracts distribution but otherwise relies on existing rendering and image processing.