ERCIM News No.45 - April 2001 [contents]
Grid Computing with Off-the-Shelves Middleware Technologies
by Christian Perez and Thierry Priol
JACO3 is a Grid environment that supports the execution of coupled numerical simulation. It is being developed jointly by EADS, INRIA, INTECS and KTH. It is a set of CORBA services that manage remote computing resources through the Internet.
The PARIS research group at INRIA-Rennes is conducting research activities in Grid computing. A Computational Grid acts as a high-performance virtual computer to users to perform various applications such as for scientific computing or for data management. It is made of several computing resources interconnected together by various networks. Although Grid Computing is still an emerging academic research field, it is foresee that the industry will soon make a stronger demand on Grid environments. Indeed, today in the industry the trend is to replace prototyping as much as possible by simulation to reduce costs and time to market. This new process is highly demanding in computing power and often involves partnerships with world-distributed sub-contractors. In such a distributed and competitive environment, antagonist requirements arise such as the need to preserve each partners intellectual property, while permitting collaborative visualization and analysis of the results. A Grid environment should give a competitive advantage to carry out such numerical simulation in a distributed way.
The PARIS research group is involved in a research and development project aiming at developing a distributed simulation environment allowing industrial partners to work together while preserving their intellectual property. The development of this environment is carried out in the context of a European Union funded R&D Project named JACO3. JACO3 stands for Java and CORBA based Collaborative Environment for Coupled Simulations. The implementation relies heavily on off-the-shelves middleware technologies which are well accepted by the industry. More precisely, the JACO3 environment is based on the CORBA middleware from the OMG on top of which several services are introduced to solve specific problems such as managing user sessions, security, data movement or computing resource allocation. A code coupling tool allows chaining of simulation codes and steering of the whole computing process. A visualization toolkit as well as custom visualization tools ease the online monitoring and final interpretation of the results by the specialized scientists. These tools are based on Java to achieve portability. The environment is being tested with two distinct applications for distributed numerical simulations. One application is to simulate the same physics on different objects, each of them being simulated on a separate computing resource to avoid the exchange of confidential data (ie the model of the object to be simulated). In the JACO3 project, Saab-Ericsson Avionics and Allgon are collaborating to study the electromagnetic coupling of an antenna on an aircraft. The second application is the simulation of different physical behaviour that encompass multi-disciplinary aspects: structural mechanics, computational fluid dynamics, electromagnetism, noise analysis, etc... This is typically what is being done by Alcatel Space Industries, who is studying simultaneously dynamics, structural mechanics and thermal behaviour of a satellite.
Besides the development of several of the JACO3 CORBA services, the PARIS project is studying how to combine parallel and distributed programming. More precisely, our objective is to allow the introduction of a parallel SPMD (Single Program Multiple Data) programming style in the design of CORBA objects. In this matter, we aim at encapsulating parallel SPMD codes (such as MPI-based ones) into CORBA objects in such a way that simplicity and efficiency are achieved. With such approach, it would be possible to couple simulation codes together using CORBA. However, one of the key problem to solve is let simulations codes exchange data as efficiently as possible.
Figure 1: The software architecture of the JACO3 environment is based on several CORBA services connected to the JACO3 software bus.
To reach this goal, we are investigating several directions such as the design of fast Object Request Broker (ORB) and the design of a new kind of CORBA object we called parallel CORBA object. The first direction is motivated by allowing an ORB to best use the underlying communication networks that are available within clusters of computing resources. Most of the current ORB takes only benefit from an Ethernet network but few of them from System Area Network (SAN) such as Myrinet or SCI. We are studying how to design an ORB on a low level communication layer, such as Madeleine (http://www.pm2.org), in order to efficiently transport CORBA requests on such high speed networks.
The second direction aims at allowing a scalable connection between CORBA objects when they encapsulate SPMD codes. We introduced the concept of parallel CORBA object as a collection of identical CORBA objects. Each object of the collection is connected to the ORB since it is standard CORBA object. Therefore, communication between two parallel CORBA objects can be performed with several communication links allowing a better usage of networking resources if available. The calling of an operation to a parallel CORBA object by a client will result in the execution of the associated method by all objects belonging to the collection at the server side. This parallel activation is done transparently by the system. Data distribution between the objects belonging to a collection is entirely handled by the system. However, to let the system carry out parallel execution and data distribution between the objects of the collection, some specifications have been added to the object interface. A parallel object interface is thus described by an extended version of IDL, called Extended-IDL. It is a set of new keywords, added to the IDL syntax to specify the number of objects in the collection, the shape of the virtual node array where objects of the collection will be mapped on, the data distribution modes associated with parameters and the collective operations applied to parameters of scalar types. The result of this work formed the basis of a response to the Aggregated Computing RFI (Request For Information) issued by the OMG (Object Management Group) that is the organization in charge of the CORBA standard.
Figure 2: Execution of the ALCATEL application with the JACO3 environment. VisualORB, from EADS, is used to model the interaction between simulations codes. Visualization tools, from INTECS, have access to the data repository to perform real-time visualization during the simulation.
Our current work is focusing on a portable version of the concept of parallel CORBA object. We are investigating how to implement such concept without modifying the CORBA standard. We are also starting an activity related to introduction of a SPMD programming model within the CORBA Component Model. The objective is perform the coupling of simulation codes using a component model instead of a distributed object one.
JACO3 Project: http://www.arttic.com/projects/JACO3/
Thierry Priol - INRIA
Tel: +33 2 99 84 72 10
Christian Perez - INRIA
Tel: +33 2 99 84 72 05