The EPSN project has been partially supported by both the ACI-GRID program from the french Ministry of Research (grant number PPL02-03), the ARC RedGRID , and is now supported by the ANR program (grant number ANR-05-MMSA-0008-03).
EPSN is a distributed computational steering environment which allows the steering of remote parallel simulations with sequential or parallel visualization tools (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 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 , 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. Moreover, the EPSN framework offers the ability to exploit parallel visualization and rendering techniques thanks to the Visualization ToolKit (VTK). 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.
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, particle sets or unstructured meshes.
Both EPSN and RedGRID use a communication infrastructure based on CORBA which provides our platform with portability, interoperability and network transparency. The current version of EPSN and RedGRID libraries are now available at INRIA Gforge :