This paper describes ongoing work on the Harness system for next-generation heterogeneous distributed computing. Harness is an adaptable, reliable virtual machine environment being built as a follow-on to PVM. The three fundamental concepts presented here are parallel plugins, fault-tolerant distributed control, and dynamically merging and splitting virtual machines. The distributed control mechanisms provide the support framework necessary for coordinating and applying parallel plugins that allow applications to customize or tune their operating environment on-the-fly. In the spirit of CUMULVS, Harness applications can plug into each other to couple for collaborative computing. Virtual machines that merge and split can assist applications in dynamically utilizing different computing resources to suit changing computational needs.
IntroductionSimulation science is a field of increasing importance, as more flexible, efficient and cost-effective software solutions begin to replace traditional physical experiments and prototypes. Online simulation experiments provide a forum for collaboration among scientific teams across wide-area networks. Yet the resource demands of simulation applications require a growing variety of heterogeneous clusters and computational grids. Accordingly, next-generation scientific software must stretch its current bounds and become more dynamic, interactive, interoperable, fault-tolerant and mobile.Harness [1,2] is an adaptable environment for next-generation heterogeneous distributed computing. Using a fundamentally new "pluggable" heterogeneous virtual machine model, as a followon to PVM [3], Harness provides a flexible platform for developing dynamic, fault-tolerant, parallel software applications. Harness pluggability extends the common serial plugin concept and applies it to the parallel computing case, allowing services, applications and resources to be plugged together as needed by state-of-the-art simulations. Applications can customize or tune their operating environments on-the-fly to cater to their potentially changing computational needs. Coupled applications can be assembled by plugging together different component simulation models, as is being