Introduction on Computational Steering

Thanks to the constant evolution of computational capacity, numerical simulations are becoming more and more complex; it is not uncommon to couple different models in different distributed codes running on supercomputer or heterogeneous grids. Nowadays, such simulations are typically running in batch mode, and the analysis of the results is then performed on a local workstation as a post-processing step, which implies to preliminary collect all the simulation output files. In most research fields, the post-processing step is realized thanks to 3D scientific visualization techniques. In the batch approach, there is a lack of control over the in-progress computations, and it might drastically decrease the profitability of the computational resources (repeated tests with different input files separated by excessively long waiting periods).

Overview of Computational Steering.

The computational steering is an alternative approach to the typical simulation work-flow of performing computation and visualization sequentially. It mainly consists in the coupling of a remote simulation with a 3D visualization systems through the network in order to provide scientists with two main functionalities: the on-line monitoring and the interactive steering.

On-Line Monitoring

It is the observation of the program's behavior during execution. In this context, the on-line visualization appears very useful to monitor the evolution of the simulation by rendering the current results. It also allows us to validate the simulation codes by detecting conceptual or programming errors before the completion of a long-running application.

Interactive Steering

It is the modification of the program's behavior during execution. More precisely, the interactive steering allows the researcher to change the simulation parameters on-the-fly. without stopping it. As the on-line visualization provides an immediate visual feedback on the effect of a parameter change, the scientist gains additional insight in the simulation, regarding to the cause-effect relationship. Such an environment with both on-line monitoring and interactive steering might help the scientist to better grasp the complexity of real-life simulations and to drive them more rapidly the into the right direction.

Overview of MxN Computational Steering.

MxN Computational Steering and EPSN

While most of existing computational steering environments support parallel simulations, they are often limited to sequential visualization systems. This may lead to an important bottleneck and increased rendering time. To achieve the required performance for on-line visualization, we have designed the EPSN framework, a computational steering environment that enables to interconnect legacy parallel simulations with parallel visualization systems. We call this approach the MxN computational steering. Our goal is to provide such a framework that can benefit from immersive virtual reality technology (e.g. tiled display wall) and that might help scientists for the understanding of real-life simulations. Such a coupling between parallel numerical simulations and parallel visualization systems raises crucial issues we investigate in the EPSN project:

Parallel coordination of steering operations

The on-line visualization and the computational steering of parallel simulations come up against a serious coherence problem. Indeed, data distributed over parallel processes must be accessed carefully to ensure they are presented to the visualization system in a meaningful way. To overcome this problem, we introduce a Hierarchical Task Model (HTM) that represents the control-flow of the simulation, too often considered in other approaches as a single-loop program. Thanks to this representation, we schedule in parallel the user interaction on the simulation processes and satisfy the temporal coherence.

Sample of HTM for the Parallel Ocean Program (POP).

Parallel data redistribution

The efficient redistribution of data is a crucial issue to achieve an efficient coupling between simulation and visualization codes. Most of the previous works have limited their studies to structured data with regular distributions (e.g dense arrays with simple block-cyclic distributions). However, the numerical simulations frequently handle more irregular data, like particle sets, unstructured meshes or hierarchical grids. In such a context, the data transfer involves to switch from one distribution to another, and thus to redistribute the data. For this, we introduce a description model for distributed data, based on the notion of complex object . Thanks to this model, we propose redistribution algorithms that generate symbolic messages, independently from a particular communication layer. We distinguish two main approaches: the spatial approach and the placement approach. The first approach uses spatial information on distributed objects to compute messages while the placement approach is inspired from load-balancing algorithms.

Overview of the Redistribution Problem.

Finally, the EPSN framework provides a modern approach for computational steering that can benefit from parallel rendering techniques and takes advantage of redistribution algorithm to achieve high-performance.

The EPSN Framework

EPSN is a distributed computational steering environment which allows the steering of remote parallel simulations with sequential or parallel visualization tools or graphics user interface. It is a distributed environment based on a simple client/server relationship between user interfaces (clients) and simulations (servers). The user interfaces can dynamically be connected to or disconnected from the simulation during its execution. Once a client is connected, it interacts with the simulation component through an asynchronous and concurrent request system.

Overview of EPSN Architecture.

We distinguish three kinds of steering request. Firstly, the "control" requests (play, step, stop) allow to steer the execution flow of the simulation. Secondly, the "data access" requests (get, put) allow to read/write parameters and data from the memory of the remote simulation. Finally, the "action" requests enable to invoke user-defined routines in the simulation. In order to make a legacy simulation steerable, the end-user annotates its simulation source-code with the EPSN~API. These annotations provide the EPSN environment with two kinds of information: the description of the program structure according to a Hierarchical Task Model (HTM) and the description of the distributed data that will be accessible by the remote clients.

Concerning the development of client applications, we also provide a front-end API that enables to integrate EPSN in a high-level visualization system such as AVS/Express, VTK or ParaView. We also provide a lightweight user interface, called SiMonE (Simulation Monitoring for EPSN), that enables to easily connect any simulations and interact with them, by controlling the computational flow, viewing the current parameters or data on a simple data-sheet and modifying them optionally. SiMonE also includes simple visualization plug-ins to online display the intermediate results.

SiMonE (Simulation Monitoring for EPSN).

Moreover, the EPSN framework offers the ability to exploit parallel visualization and rendering techniques thanks to VTK (the Visualization ToolKit). This approach allows to reduce the steering overhead of the EPSN platform and allow to process efficiently large dataset. To visualize with high resolution image and to improve the rendering time, EPSN can also exploit tiled-display wall based on ICE-T library developed at Sandia Laboratory.

Online Parallel Visualization with the EPSN Framework.

As both the simulation and the visualization can be parallel applications, EPSN is based on the MxN redistribution library called RedGRID. This library is in charge of computing all the messages that will be exchanged between the two parallel components, and is also in charge of performing the data transfer in parallel. Thus, RedGRID is able to aggregate the bandwidth and to achieve high performance. Moreover, it is designed to consider a wide variety of distributed data structures usually found in the numerical simulations, such as structured grids, points, unstructured meshes or parameters.
Webmaster: esnard@labri.fr, 06/07/2007