next up previous
Next: WebWindows and the User Up: Java and Web Technologies Previous: Concurrency in Applications

Overview of Web and Parallel Computing Software Issues

We can view computing (as many other enterprises) in terms of a pyramid with widely deployed cheap systems at the bottom of the pyramid, and the few high-performance systems as the top. There is much more computing power in the distributed collection of consumer-oriented products--PCs, videogames, Personal Digital Assistants, Digital Set Top boxes, etc. This dominant dollar investment in the consumer products implies that one can expect the bottom of the pyramid to have much better software than the top. Software investment must be roughly proportional to market size, and so we see PCs, workstations, and MPPs (Massively Parallel Processors) offering increasing unit software price and decreasing software quality and functionality. The Web, perhaps, offers now the best available software (as it is potentially the largest market). When the PC market dominated quality consumer software, it was hard for the parallel processing community to take advantage of it. PCs offer, of course, a sequential computer model, but now the Web software targets a very rich distributed computing model. It seems to us clear that we can, and indeed must, build MPP software with a backbone architecture of Web software. As mentioned in the Introduction, we can then view parallel processing as a special case of a distributed model with stringent synchronization constraints. We view this as leading to a set of Compute Webs, which we describe in the following sections.

This approach has the added advantage that we can build Compute Webs by either running Web clients or servers with synchronization/compute enhanced Web software, or use the latter software to provide a very attractive user environment on specialized MPPs whose low latency and high-bandwidth communication enable critical parallel computations.

In the following, we discuss the role of Web hardware and, especially, software for three distinct parts of computation.

  1. User (client) view--problem specification, visualization, computational steering, data analysis
  2. Metaproblem implemented on a distributed computer
  3. Individual computationally complex components of the metaproblem implemented on high-performance computers, which could in fact be a distributed system itself.

We cover these three parts--graphical user interface, dataflow for metaproblems/software integration, and hardcore computation, in the next three sections.


next up previous
Next: WebWindows and the User Up: Java and Web Technologies Previous: Concurrency in Applications

Geoffrey Fox, Northeast Parallel Architectures Center at Syracuse University, gcf@npac.syr.edu