Overview
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). 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.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.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.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.