Technical Reports

Borzoo Bonakdarpour, Marius Bozga, Mohamad Jaber Jean Quilbeuf, and Joseph Sifakis
From High-Level Component-Based Models to Distributed Implementations (2010)

TR-2010-9.pdf
TR-2010-9.ps

Keywords:

Abstract: Constructing correct distributed systems from their high-level models has always been a challenge and often subject to serious errors because of their non-deterministic and non-atomic structure. Thus, it is highly desirable if designers can automatically transform high-level models (where atomicity is assumed through global state semantics and distribution details are omitted via employing high-level synchronization primitives) into distributed and parallel implementations while preserving the correctness of the abstract model. In this paper, we propose a novel transformation in the context of the BIP modeling formalism. Our transformation preserves observational equivalence and allows parallelism between components even though these components interact through multi-party synchronization primitives in the corresponding high-level model. In particular, our method, (1) transforms a high-level BIP model into another BIP model that operates using asynchronous message passing, (2) constructs a set of distributed schedulers, and (3) transforms the intermediate BIP model and schedulers into actual C++ distributed code. Our experiments show that the distributed code generated using our method does not exhibit considerable overhead in the sense that the performance of the generated code is competitive with the performance of corresponding hand-written parallel code. We also present two types of optimizations. First, we consider a transformation from BIP models directly to Message Passing Interface (MPI) code for cases where there are no global conflicts. Our experiments show that the performance of automatically generated MPI code is almost identical to the hand-written optimized code. Since most popular MPI applications fall in this category, we argue that this transformation assists developers of parallel and multi-core applications to start development from high-level BIP models and not get involved in low-level synchronization details. The second optimization is for cases where distributed conflicts are more complex and adding distributed schedulers on top of MPI libraries add considerable overhead. Our solution to this case involves a merging mechanism of computing and scheduling processes.

Contact | Plan du site | Site réalisé avec SPIP 4.2.16 + AHUNTSIC [CC License]

info visites 4181620