PACO++: A parallel object model for high performance distributed systems * Christian P´ erez Thierry Priol Andr´ e Ribes IRISA/INRIA, Campus de Beaulieu 35042 Rennes Cedex, France Tel:+33 2 99 84 74 13, Fax:+33 2 99 84 71 71 {Christian.Perez,Thierry.Priol,Andre.Ribes}@irisa.fr Abstract The availability of high bandwidth wide area net- works enables the coupling of several computing re- sources — supercomputers or PC clusters — together to obtain a high performance distributed system. The question is to determine a suitable programming model that provides transparency, interoperability, reliability, scalability and performance. Since such systems appear as a combination of distributed and parallel systems, it is tempting to extend programming models that were as- sociated to distributed or to parallel systems. Another choice is to combine the two different worlds into a single coherent one. A parallelism oriented model appears more adequate to program parallel codes while a distributed oriented model is more suitable to handle inter-code communications. This issue is addressed with the concept of parallel object. We have applied it to CORBA so as to define a parallel CORBA object: it is a collection of identical CORBA objects with a Single Program Multiple Data (SPMD) execution model. This paper presents PACO++, a portable implemen- tation of the concept of parallel CORBA object. It ex- amines how the different design issues have been tack- led with. For example, scalability is achieved between two parallel CORBA objects by involving all members of both collections in the communication: an aggregated bandwidth of 874 Mbit/s has been obtained on a 1 Gbit/s WAN. Such a performance is obtained while preserving the semantics of CORBA and in particular interoper- ability with standard CORBA objects. * This work was supported by the Incentive Concerted Action “GRID” (ACI GRID) of the French Ministry of Research. 1 Introduction Numerical simulation is playing an increasing role in the design process of many competitive industries such as automobile or aerospace. It is now possible to simu- late various physical phenomena before making any real prototype. Such a situation was made possible thanks to high performance computers that become cost-effective when based on standard technologies, like PC clusters. However, the need to have more accurate simula- tion requires nowadays to couple several simulations to- gether to study the interactions between several physics. Such multiphysics applications require huge comput- ing power. Hopefully, with the availability of high bandwidth wide area networks, it is nowadays feasi- ble to couple several computing resources — supercom- puters or clusters of PC — together to obtain a high- performance distributed system. Such a computing in- frastructure, which brings together distributed and par- allel systems, is now being called a computational grid. The question is to determine an adequate program- ming model to design multiphysics applications that will be run on such a computing infrastructure. Several ef- forts have been made to design code coupling tools or frameworks which do not put too much burden on the programmers. Most of these tools [3, 20, 2] are targeted to specific physics fields (climate, aerospace, etc), rely on parallel runtime (for example MPI- Message Pass- ing Interface [18]) and provide their own abstractions (component or object models or more often an ad-hoc API) without adhering to existing standards. To illus- trate the situation, the execution of an application based on MpCCI [3] on a computational grid requires an MPI implementation able to spawn MPI applications on sev- eral grid resources whereas MPI has not been designed Proceedings of the 37th Hawaii International Conference on System Sciences - 2004 0-7695-2056-1/04 $17.00 (C) 2004 IEEE 1