Google Tech Talks
May, 8 2008


With 1 Billion idle PC’s in the world, there is approximately $100 Billion’s worth of CPU time going to waste every year. Given that insatiable global demand for computation is fuelling massive datacentre proliferation, with consequential environmental impact, surely there must be a way to leverage idle time on desktops to relieve some of this pressure?

In the past, the term “Grid Computing” has been used to encompass the idea of using idle desktop capacity productively. Unfortunately “Grid Technology” has yet to provide a solution for this global problem, especially for the vast majority of machines which are outside the corporate firewall. Nevertheless, there is a class of problems which are ideally suited for idle desktops and can leverage millions of machines if managed effectively. We use the phrase “Massively Parallel Computation” to describe such tasks, by their nature beyond the scale of any datacentre, but also beyond the capabilities of virtually all grid software too!

Nereus is a new, open source, pure Java MPC platform which finally offers an easy way to use the world’s idle computers. Joining a computational project running on Nereus is as simple as clicking a link in a web page, and it provides a secure sandbox to protect the host computer from malicious software — just like the Applet sandbox in a browser. Developing a Nereus application is also simple; it’s virtually identical to building a servlet for a J2EE container, and the progamming concepts will be familiar to all Java developers (J2EE focussed or not). Nereus applications are as simple to write as any Java applet; one JAR on the classpath, one class to extend, and a small but powerful API.

Perhaps most importantly, Nereus provides a simple way for owners to delegate control of their machine to resellers, who are then able to group machines together and offer attractive resources to customers. This feature also provides for the owner getting paid for this 3rd party use — something drastically different from many MPC projects which require people to donate their spare computer time (e.g. SETI@Home).

This talk will describe Nereus, its architecture and implementation details, as well as a step-by-step demonstration of building a “Hello Nereus” MPC application. Other demos include showing a MPC 3D rendering application — animating a movie lightning fast. The audience will also be invited to join a Nereus MPC application created and started within the talk, using their laptops from where they sit. We can then all experience the CPU power unleashed by simply sitting in a talk!

Nereus is simple x 3; simple to deploy, simple to join, simple to use. By demonstrating this during the talk, and by showing the successful work being done at Oxford University using it we hope to simulate interest in the more widespread use of this open source technology in the next generation web.

Oh, and what about using “native” code on Nereus resources? We will show how, still within the full Java security sandbox, by using the JPC pure java x86 emulator (see JavaOne 2007/2008 and )

Further information about Nereus can be found at

Speaker: Dr Rhys Newman
Chief Architect IGD Group, Dept Physics Oxford University (JavaOne “Rock Star 2007”)

Rhys joined the IGD group in 2004 after spending over 20 years as a programmer in industry and academia. The first 10 were in C/C++ but since then he has focused exclusively on Java technology. Rhys got his DPhil from Oxford University in 1998 and since then has worked in several technology start-ups and academic positions.

Speaker: Dr Jeff Tseng
Group Lead, Grid Technology, Dept Physics Oxford University.

Jeff formed the IGD group in 2003 when he arrived at Oxford to take up his post as University Lecturer in Physics. Before that, he was a research scientist at MIT and Fermilab working on the CDF particle physics experiment, where he built data acquisition systems out of off-the-shelf PC’s and was in charge of the experiment’s data handling systems and initial forays into grid com…


Nereus: Massively Parallel Computation in Java

About The Author