This website is being updated - please pardon us for the incompleteness during this process

Computational Monitoring and Steering Through Remote Visualization

Background

Computational monitoring and steering enables effective execution of long-running and computing-intensive scientific simulations on a remote system such as supercomputer or cluster via visual output. Boundary conditions, model geometries, computing parameters, and visualization/viewing parameters can be adjusted as the computation progresses. Bad computing jobs can be terminated and st ray parameters can be tuned to save unnecessary computing cycles.

The design and implementation of a computational steering system requires expertise from many areas such as high performance computing, geometric modeling, and scientific visualization, which are integrated and optimized over wide-area network environment. In our system, computing modules are seamlessly integrated with visualization modules as partially generated data can be dispatched and visualized at local end during the computation runtime. Such intermediate partial visual outputs can be utilized to alter the ongoing computations without waiting for the entire dataset to be generated.

Other Computational Steering Systems

ComputationalThere have been various research efforts on the system design and implementation for computational monitoring and steering systems:

SCIRun [1], a computational steering environment was initially designed to tackle problems encountered in computational medicine. A network consisting of various computing modules and dataflow links can be constructed under a visual programming environment. Parameter control can be independently applied to individual computing and visualization modules in a graphical user interface.

CUMULVS [2] is a middleware library that provides an API between PVM [5] and visualization package such as AVS [6]. Collaborative operations allow researchers at different geographical locations to monitor and steer the same simulation process.

VIPER [3], a steering tool for parallel computing application, has a pipeline structure consisting of a computational unit, i.e. the parallel application processes, a connecting unit, i.e. the VIPER server, the VIPER object base, and a simplified visualization unit. The target environment for implementation is clusters of workstations and the selected communication library is PVM.

RealityGrid [4] supports distributed and collaborative steering of parallel simulation and simultaneous visualization. The steering controls of the application are realized through Open Grid Services Infrastructure (OGSI)-compliant Grid service and steering library.

Most of the aforementioned computational steering systems employs a static configuration scheme that does not optimally exploit the disparate computational characteristics and complexities for each steering task, and the underlying network dynamics. These are critical factors for adaptive system deployment to approach optimal network performance. Furthermore, most existing steering tools are not lightweight and require installation of various third-party communication and visualization packages such as Globus, SOAP, PVM and AVS etc.

System Description

We are developing an interactive computational monitoring and steering system (Fig.1) which is capable of adaptively selecting an appropriate system configuration to achieve the optimal network performance. Our first implementation is based on GTK/OpenGL implementation of the remote client and C++ library functions callable by C/C++ and Fortran computation/simulation codes. Function calls from this steering library are inserted at strategic points in iterative simulation programs written in various programming languages such as Fortran, Java and C++. Embedded function calls can be used to deliver results or intercept steering commands from the client. Currently, we are extending this system to a web-based Service-Oriented Architecture (SOA), which makes it available over the network as an independent service accessible from a variety of platforms .

Figure 1: Steering system architecture

Users can access the steering services by logging on a remote web server. No additional packages besides a web browser are required at the user end in order to access and manage the remote steering system. Users input the computing and visualization parameters through the interaction with GUI in a browser and receive a sequence of rendered images sent by the web server.

Ajax , shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications. Partial screen updates and asynchronous communication between browser and Aajax server are two essential features of Ajax. In our system architecture , Ajax server acts as a proxy client with Tomcat [7] running as the servlet container . Ajax module model is illustrated in details in Fig. 2. A graphical user interface in the browser has two seperated windows: one window allows users to specify steerable computing and visualization parameters, and the other one displays the received rendered image.

Figure 2: Ajax module model

Our system was initially designed and implemented for specific steering project, TSI [8], and however, this system can be applied to various other simulation and computation codes.

M. Oberhuber, S. Rathmayer, and A. Bode, "Tuning parallel programs with computational steering and controlled execution, " in Proceedings of the Thirty-First Hawaii International Conference on System Sciences.