Energy@23 Award Nomination
Parallel Virtual Machine (PVM) - 1991

photo

ABSTRACT:

Parallel Virtual Machine (PVM) is a software package developed at a DOE laboratory and in cooperation with the University of Tennessee that permits a heterogeneous collection of Unix and Windows computers linked together by a network to be used as a single large parallel computer. PVM is being used to link together multiple supercomputers distributed around the world to achieve the very high computational performance needed to solve problems such as weather modeling and materials design. Large computational problems can be solved more cost effectively by using the aggregate power and memory of many computers. Central to the design of PVM is the notion of a “virtual machine”—a set of heterogeneous hosts connected by a network that appears logically to the user as a single large parallel computer. PVM is on the leading edge of technology in the area of distributed computing, and is expanding rapidly as high-speed networks go on line.

PVM is used as a “poor man's supercomputer” by exploiting the aggregate power of unused workstations during off-hours. No computer in the world can match the price/performance ratio of this virtual machine configuration. Going one step further, many work groups are purchasing PC clusters for dedicated replacement of their supercomputers.

PROGRAM DESCRIPTION:

PVM (Parallel Virtual Machine) is a software package that permits a heterogeneous collection of computers, from laptops to Crays, linked together by a network to be used as a single large parallel computer. Thus, large computational problems can be solved more cost effectively by using the aggregate power and memory of many computers.

DOE Research Laboratories, researchers at NERSC and NOAA, NSF Supercomputer Centers, NASA Research Centers, as well as numerous universities around the country are using PVM for both research and as a teaching tool for parallel programming. PVM popularity is due in part because it is easy to install and simple to use. Applications, which can be written in FORTRAN, C, or C++, can be parallelized by using simple message-passing constructs common to most distributed-memory computers. A very popular use today is to use PVM to combine the aggregate power of a cluster of PCs running Linux. PVM is a byproduct of an ongoing Heterogeneous Distributed Computer research project at a DOE laboratory and the University of Tennessee. The first public version of PVM was released in 1991. The use of PVM grew rapidly worldwide as scientists spread the word of the utility of this software to do computational research. Today there are tens of thousands of PVM users worldwide.

In order to provide the maximum flexibility and fault tolerance to PVM applications, the machine is assumed to be completely dynamic. Hosts can be added or deleted (or fail) inside the virtual machine and PVM will automatically reconfigure the virtual machine. Similarly, any PVM task has the ability to start or kill other tasks at any time on the virtual machine. There are also functions to determine the dynamic configuration of the virtual machine and what and where tasks are running across the machine. For application fault tolerance, there are PVM functions that can be called to notify an application of failures of any hosts or tasks in the virtual machine.

Within the virtual machine, parallel tasks exchange data using a simple message-passing API. This has proved to be the most portable and intuitive interface to scientists not familiar with parallel computing. While PVM is often compared to message passing interfaces, such as MPI, message passing is just one part of the PVM system. In fact on the SP-2, PVM internally uses IBM's optimized MPI implementation to move the data. The PVM source code continues to be available free through the Web at http://www.csm.ornl.gov/pvm.

There is a very active PVM news group with "experts" worldwide who are willing to answer users' questions and help with problems through a link on the web site: comp.parallel.pvm.

Computer scientists around the world continue to incorporate the PVM model and API into other languages including: Java, Perl, TCL/TK, and Lisp. PVM is also used anywhere where more computational power is needed and the user has access to several computers connected together by a network. Then PVM can be used to exploit the aggregate power of these computers. PVM is on the leading edge of technology in the area of distributed computing. This area will be expanding rapidly in the next few years as high-speed networks go on line.

IMPROVING THE QUALITY OF LIFE:

PVM is an enabling technology. The software enables users to exploit their existing computer hardware to solve much larger problems at minimal additional cost. Hundreds of sites around the world are using PVM to solve important scientific, industrial, and medical problems.

PVM has continuously evolved over the years to satisfy user requests for additional features and keep up with the fast-changing network and computing technology. One example of a user-requested feature was the addition of interfaces that allow third-party debuggers and resource managers to be seamlessly incorporated (like plug-ins) into the virtual machine. Examples of technology driven changes include the ability for PVM to transparently utilize shared memory and high-speed networks like ATM to move data faster with no change to PVM applications.

PVM is also being used as an educational tool allowing colleges without access to parallel computers to teach parallel programming courses. Beginning in fall 1991, five Universities used PVM as a teaching tool; University of Maine, University of Utah, Florida State University, University of Tennessee, and Emory University - the list continues to grow.

COST SAVINGS:

This PVM software enables users to exploit their existing computer hardware to solve much larger problems at minimal additional cost. Industries are using this software as a cost-effective way to design new products. The following is just a sampling of many companies using PVM today: Ford, Boeing, Sikorsky, United Technologies, Texaco, Dupont, General Electric, Citicorp, Compuserve, JP Morgan Guaranty Trust, Siemens, Exxon, TVA, Computational Biosciences Inc., Western Geophysical, Phillips Laboratory, Mobil Oil, Consolidated Freightways Inc., US Grain Marketing Research Lab, Elegant Mathematics Inc., IBM, Cray Research, and Shell Oil.

OTHER NOTEWORTHY BENEFITS:

The robustness, heterogeneity, and simplicity of the PVM software have made it very popular around the world in industry, research labs, medical centers, and universities. Over 500 organizations have obtained copies of the package. With tens of thousands of users, PVM has become so popular that it is the de facto standard for distributed computing worldwide. Over 250,000 requests for PVM have been received by NETLIB, the primary distribution site for PVM source and documentation. The 1994 PVM Users' Group Meeting attracted attendees from 11 different countries spanning 4 continents.

Recent additions to PVM over the past year include the ability to do cross-platform distributed computing where the virtual machine can contain Windows NT, Windows 98, and UNIX hosts all interoperating.