CUMULVS: Collaborative User Migration, User Library for Visualization and Steering
CUMULVS is a software infrastructure for the development of collaborative environments. It supports interactive visualization and remote computational steering of distributed applications by multiple collaborators, and provides a mechanism for constructing fault-tolerant, migrating applications in heterogeneous distributed computing environments.
ORNL is developing a state-of-the-art system called CUMULVS for assisting in the development of parallel and distributed applications. CUMULVS allows scientists to easily incorporate fault tolerance, interactive visualization and computational steering into their applications. The system is a valuable new tool for use in many large scientific simulations because it allows the scientist to visually monitor large data fields of an ongoing computation and to remotely control algorithmic and model parameters while the application is running. In addition, CUMULVS provides a simple way to incorporate checkpointing and distributed task migration inside large applications. This facility supports automatic recovery / restart of application tasks, even across heterogeneous architecture and topology boundaries.
CUMULVS provides several important features for the computational scientist. It handles the details of collecting and sending distributed data fields to, and receiving steering parameters from, multiple dynamically attached viewers. The viewers provide a uniform global view of data, even if the data is decomposed across many distributed tasks. CUMULVS manages all aspects of the dynamic attachment and detachment of multiple viewers to a running simulation. Viewers can be commercial packages such as AVS, public domain software such as Tcl/Tk, or customized viewers for specific application domains.
CUMULVS produces time-coherent views of application data that could potentially be changing asynchronously on parallel computers all across the nation. CUMULVS ensures the coherency of steering parameter updates when multiple collaborators are viewing and steering the application at the same time. And changes to steering parameters are coordinated across the application task so that updates are applied at a consistent time step in each task.
The CUMULVS system has been used in an acoustic wave propagation application and a First Principles materials science application, allowing the application developers to see for the first time the progress of their solutions during the computation.
In the acoustic wave propagation application (shown above), the user can adjust input parameters, such as shot location and intensity, on the fly. In both applications, CUMULVS supplied the distributed checkpointing and process migration capabilities required to run over the wide-area GII testbed.
Using these two applications, CUMULVS was demonstrated at Supercomputing '95 where it won the award for best interface and fault tolerance in the High Performance Computing Challenge. A demonstration of on-the-fly reconfiguration via CUMULVS checkpointing, using a simulation of air flow around an airfoil, won the Silver Medal for Innovation at Supercomputing '96. The development of CUMULVS was funded by DOE's Mathematical, Information, and Computational Sciences Division (MICS) and by DOE Basic Energy Sciences.
In light of the growing emphasis towards computer simulation and remote control of Virtual Laboratory experiments, CUMULVS could impact the entire scientific community by supplying a collaborative infrastructure for computational steering, interactive visualization and fault tolerance in distributed environments.
Computational steering has the potential to revolutionize computational experiments by allowing scientists to interactively explore (steer) a simulation in time and/or space. Computational steering helps a scientist or engineer to concentrate more on the science than on the computer. Through the use of interaction, the computer will become a more useful tool to the engineer, allowing experimentation and real time exploration of a design space. Instead of the typical simulation mode - manually setting input parameters, computing results, storing data off to disk, visualizing the results via a separate visualization package, then starting again from the beginning - computational steering allows the scientist or engineer to ``close the loop'' and allow interactive manipulation of algorithmic and model parameters beyond their initial values.