next up previous
Next: A Technique for DSM Up: Runtime System Previous: Load Balancing and Fault

Association of Workers and Computations

It is very likely that at any moment there are idle machines on the Web willing to help in some computation, and there are computations that could utilize them. Both sets are dynamic. The first difficulty lies in associating an idle machine with a computation. It is only when this association has been established, and the necessary program fragment been made accessible, that an idle machine can contribute to the computation. However, the lack of trust in allowing ``strange programs'' to execute on local hardware is a serious issue. The complete problem is of great importance since it lies at the core of providing an effective metacomputing environment.

 figure175
Figure: Sample list of active Charlotte programs.

We have adopted a solution that does not scale for settings such as the World Wide Web, but it is an effective solution for our network at New York University. Oversimplifying it, when a Charlotte program reaches a parallel step, it registers itself with a specific daemon process. This action creates an entry in a URL homepage (see Fig. 2). Any user in our network can visit this homepage using any Java-capable browser and see the list of active programs. If the user wishes to donate some of the CPU power of her machine, she can simply click on the entry. This will load the required code to the user's machine and start assisting the ongoing computation. We plan to automate this feature by relying on manager lookup services.

Since Charlotte is entirely implemented in Java, it provides the same security guarantees as Java. Java guarantees the protection of local resources from programs. Although there seem to be security holes in the current implementation [6], there are strong indications that this will be solved. Charlotte will transparently take advantage of these improvements. Once users stop being afraid of programs that come over the network, we feel that they will have more incentive to allow others to use their idle CPU cycles

It is important to stress that Charlotte supports heterogeneous systems, which makes it possible for any idle machine to execute a parallel computation along side any other--a necessity for the Web.


next up previous
Next: A Technique for DSM Up: Runtime System Previous: Load Balancing and Fault

Arash Baratloo
Wed Apr 23 15:04:28 EDT 1997