Parallel Computing is arriving at an important turning point. Up to now, it has been mainly the domain of scientists. It is synonymous with expensive machines, such as the IBM SP-2, Cray T3D, SGI Challenge, or Sun Sparccenter. This will dramatically change with the introduction of low-cost multiprocessor PCs and with the rapidly growing need for powerful internet/intranet server systems. "Parallel computing" will commonly refer to the dual or quad processor machine on many people's desks or to the cluster of PCs that provides internet/intranet services in many businesses.
How will parallel computing research conducted on supercomputers impact these new platforms? At the hardware level, the technology underlying multiprocessor PCs (cache coherency protocols) developed in academia in the 80's have been transitioned into products. MPP hardware and software, however, is not directly applicable to clusters of PCs. Clusters will use off-the-shelf operating systems and applications and must run in much less controlled environments than MPPs currently do. They must offer a smooth upgrade path from one machine to a few dozen, allowing users to add machines little by little as performance demands increase or as additional reliability through replication is needed.
Unfortunately, current networking layers offer roughly two orders of magnitude worse communication performance than on comparable parallel machines. For several years my research group has worked on reducing the number of software layers between the applications and the network hardware. The foundation of our present work was laid in my Ph.D. thesis on Active Messages: a simple and universal communication primitive. The contributions of Active Messages are three-fold: lower communication cost on massively parallel machines, increased flexibility enabling portable parallel language development, and a framework for developing efficient communication hardware.
The increasing integration of the internet into applications and servers is forcing a tight coupling of parallel and distributed computing technology. This will, for example, allow high performance internet servers to run as parallel programs on clusters while using replication to ensure fault tolerance. Supporting such applications requires a broad solution to current communication bottlenecks. My group has developed a new network interface architecture, U-Net, which bypasses the operating system for communication and which supports parallel languages as well as distributed system protocols. We are implementing U-Net on clusters of PCs and preliminary results show an order of magnitude reduction in communication performance over standard networking layers. We have integrated U-Net into the Linux operating system and are now working on a Windows NT version. We are also porting an object-oriented parallel programming language (CC++) as well as a group communication toolkit (Horus) to this platform to take advantage of the new communication performance and to offer an attractive programming system.
If you have questions or comments please contact: firstname.lastname@example.org.