The recent explosion of the World-Wide Web has enabled a diverse set of new Internet related applications and technologies. Among the key attractions of the Web has been the promise of easy access to a wealth of information around the world. Currently, however, the Web supports only a simple model of computing: information residing at a host computer can be automatically downloaded and viewed on a client machine, and applications residing at a host computer can be automatically downloaded and executed on the client machine. This model, although extremely powerful, exploits only a fraction of the potential of the Internet. A more compelling vision is one that views the Internet as a source of both information and computing resources. In the ParaWeb project, we are building tools and abstractions that allow users to treat the entire Internet as a single large computing resource. Within the ParaWeb framework, users may execute serial programs remotely, on faster compute engines, or they may execute parallel programs on a variety of platforms across the Internet.
The mechanisms for ParaWeb are partially available today in the form of the Java programming language [5] and Java Virtual Machine (JVM) [7]. Java applications are compiled into an intermediate byte-code that can be executed (interpreted) on any architecture, relieving both the developer and user of concerns related to the heterogeneity of the target platforms. While the interpreted nature of the byte-code makes the current execution very slow compared to equivalent programs written in C or C++, future just-in-time compilers will likely eliminate much of this performance gap.
The rapid proliferation of the Web has been due to seamless access it provides to information that is distributed across an organization or around the world. The key to the ParaWeb model is to build a software infrastructure that provides the same level of seamless access to heterogeneous computing resources, either within an organization or across the entire Internet. In addition to allowing existing unmodified thread-based Java applications to be automatically executed remotely or in parallel, ParaWeb introduce a new class library which allow new Java applications to be written specifically with parallelism in mind.
The ParaWeb model is described in Section 2 while the mechanisms used to implement ParaWeb are described in Section 3. In Section 4 we present early experiences with a simple parallel application. Section 5 outlines a number of issues being explored and addressed in this work and Section 6 describes related work. We conclude the paper with a summary, in Section 7.