Skip to Main Content
The availability of high bandwidth wide area networks enables the coupling of several computing resources - 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 associated 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 implementation of the concept of parallel Corba object. It examines how the different design issues have been tackled 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 interoperability with standard Corba objects.