Code Generation for Parallel Applications Modelled with Object-Based Graph Grammars1

https://doi.org/10.1016/j.entcs.2007.03.018Get rights and content
Under a Creative Commons license
open access

Abstract

During the development of a parallel application, besides being able to analyze performance aspects, it is highly desirable to be able to assure functional properties as early as possible. Assuring functional properties about a model of the parallel applicationcan lead to important savings since it reduces the time spent in application development and debugging. In this direction, model-checking and automatic code generation can be used as complementary tools during the development, making possible to analyze the system behavior and allowing the fast generation of corresponding code. In this paper we propose the use of Object-Based Graph Grammars (OBGG) for the specification of parallel applications. OBGG is a formal, visual language suited for the description of concurrent systems based on asynchronous message passing. Models described using OBGG can be verified through model checking. Following this approach, a translation from OBGG models to C code using MPI (Message Passing Interface), which is suited for clusters, is presented. To illustrate the contribution, a sample parallel application is modelled in OBGG; functional properties of the model are proven by model-checking; the C/MPI corresponding model is presented and performance results of the translated model are discussed and compared with an analogous C/MPI application built by hand.

Keywords

Graph Grammars
Parallel Programming
MPI
Model Checking

Cited by (0)

1

Projects IQ-Mobile (CNPq-CNR) and DACHIA (FAPERGS/IB-BMBF).

2

Author partially sponsored by HP-Brasil/PUCRS agreement.