In many ways the HPCC program has been a great success and demonstrated as we like to say that ``Parallel Computing Works!'' [13]. However, MPPs remain rather difficult to use. This partly reflects inevitable problems in parallel programming, but also the immaturity of current MPP software development environments. We know how to do build much more powerful MPP software systems than are currently available. This is not surprising, as parallel (and distributed) computers are clearly the most complex computer systems. Thus, one would expect that it would require more effort to build a software environment for an MPP than for PC. Unfortunately, as shown schematically in Figure 8, the PC market is about two orders of magnitude larger than that for MPPs. Correspondingly, the software environment for PCs (and to a lesser extent) workstations must be much better than for MPPs. The situation can only improve if the size of the MPP market increases dramatically, and this currently appears unlikely in the technical computing area. We notice that the WWW is, as described in Section 2, a distributed computing environment associated with pervasive technology base and a corresponding large and vital software development infrastructure. In WebWork, we suggest, in collaboration with Boston University and Cooperating Systems, building a parallel programming environment on top of ``Web Technology.'' This is not a terribly well defined statement as it implies and assumes an extension of the Web in many ways from information servers to combined compute-information servers. These will feature many enhancements from today, including integrated security and low latency HTTP-NG protocols connecting multi-threaded Web servers [14]. Much of this is discussed in [15]. Figure 8 shows a traditional HPCC strategy of porting MPP technologies so they can run on more available technologies, such as networks of PCs or workstations. WebWork takes the opposite approach of extrapolating from the base to the tip of the pyramid. The classic HPCC approach has the problem that it does not naturally produce technology used by and hence supported by a broad community. WebWork has a potentially equally serious problem that the extrapolation might ``miss the top of the pyramid'' i.e., produce a system that either did not meet the needs of parallel computing and/or produced very inefficient parallel code. We believe that careful design can avoid this problem. For instance, we are leading a group developing an open parallel compiler runtime that will support HPF (High Performance Fortran), and parallel C++ on several platforms [16], [17]. This runtime embodies key parallel computing synchronization and collective communication and computation primitives. As shown in Figure 9, Webwork will reuse such software, but provide an attractive front end and use suitable low latency Web compatible message passing systems. This concept when refined with a careful mix of interpretative and compiled environments leads to WebHPL---a general parallel language combining the lessons of expressing and implementing parallelism coming from HPCC research with the WebWork advantages of building on Web technologies.
Figure 8: A contrast between WebWork's upward extrapolation from broad
to niche markets with the traditional porting of MPP technologies
Figure 9: Integration of HPCC technologies with the Web illustrated for
the parallel compiler runtime
Often, we have worried about the concept of parallel software engineering (PSE), but found no convincing approach. Now, I realize why I had difficulties. Good software engineering requires a good support (productivity) environment, and this is absent from all current parallel systems. WebWork has a clear mechanism for PSE by using the natural linkage of information and computing in the extend Web---this we term the Virtual Software Laboratory. We will illustrate this in Section 3.4 with our WebFlow concept implementing compute, information, and project management in a uniform dataflow framework.