Team HiePACS

Overall Objectives
Scientific Foundations
Application Domains
New Results
Contracts and Grants with Industry
Other Grants and Activities

Section: Software


EPSN (Environement for Computational Steering) is a software environment for the steering of parallel numerical simulations with visualization programs that can be parallel as well (see Figure 1 ). It is based on RedGRID , a software environment especially dedicated to the coupling of parallel codes, and more precisely to the redistribution of complex parallel data objects such as structured grids, particles and unstructured meshes.

Figure 1. EPSN: software environment for M×N computational steering.

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. 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 the integration of EPSN in a high-level visualization system such as VTK or ParaView . We also provide a lightweight user interface, called SiMonE (Simulation Monitoring for EPSN ), that enables us 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. Moreover, the EPSN framework offers the ability to exploit parallel visualization and rendering techniques thanks to the Visualization ToolKit (VTK). This approach allows us to reduce the steering overhead of the EPSN platform and allows us to process efficiently large dataset. It is also possible to exploit tiled-display wall with EPSN in order to reach high resolution image.

As both the simulation and the visualization can be parallel applications, EPSN is based on the M× N 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 or unstructured meshes. Both EPSN and RedGRID use a communication infrastructure based on CORBA which provides our platform with portability, interoperability and network transparency. EPSN has been supported by the ACI-GRID program (grant number PPL02-03), the ARC RedGRID , and more recently by the ANR program called MASSIM (grant number ANR-05-MMSA-0008-03). It is now involved in the ANR CIS NOSSI (2007). More informations are available on our web site: . This software is publicy available at INRIA Gforge ( ).

In the context of code coupling, it appears important to us to develop a simpler and more efficient way to couple codes than we have used in EPSN. Moreover, we also want to factorize different developments we have done in different projects such as MASSIM, NOSSI or within collaborations. That could be done through a new library in order to make easier the research, the development and the experimentation of the << new >> algorithms we are looking for, as described at section  3.5 . The functionalities that we need are

This library will be based on the well-known MPI standard to obtain performance, and will fully exploit the new facilities provided by MPI-2. Indeed, the dynamic process management allowed by MPI-2 offers interesting possibility for the design of code coupling.


Logo Inria