Skip to Main content Skip to Navigation
Journal articles

An MDE Approach for Automatic Code Generation from UML/MARTE to OpenCL

de Oliveira Rodrigues Antonio Wendell 1 Frédéric Guyomarc'H 1 Jean-Luc Dekeyser 1
1 DART - Contributions of the Data parallelism to real time
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Abstract : To reduce the design complexity of OpenCL programming, the approach proposed here generates application code automatically, based on model-driven engineering (MDE) and modeling and analysis of real-time and embedded (MARTE) systems. The aim is to provide application-development resources for nonspecialists in parallel programming, exploiting concepts such as reuse and platform independence. An MDE Approach for Automatic Code Generation from UML/MARTE to OpenCL A dvanced engineering and scientific communities have used parallel programming to solve their large-scale complex problems for a long time. Despite their high-level expertise, developers in these communities often find it hard to implement their parallel applications effectively. Some inherent characteristics of parallel programming contribute to this difficulty, including race conditions , memory access bottleneck, granularity decision, scheduling policy, and thread safety. To facilitate the programming of parallel applications , developers have specified several approaches. The most commonly used standards are Open Message Passing (OpenMP) for shared memory and Message Passing Interface (MPI) for distributed memory programming. These approaches let us express and explore the potential parallel-ism of applications and architectures. OpenMP adds directives having the same syntax level as the target programming language (C, C++, Fortran), while MPI is implemented as a library to manage communication between nodes. From this viewpoint , these approaches are actually tools to add parallelism resources to a sequential programming model rather than a solution for parallel programming. In December 2008, the consortium managed by the Khronos Group released the Open Computing Language (OpenCL) 1.0 specification. 1 OpenCL is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. It provides a uniform programming environment for software developers to write efficient and portable code for high-performance computing servers, desktop computer systems, and handheld devices using a diverse mix of multi-core CPUs, GPUs, cell-type architectures, and other parallel processors such as digital signal processors (DSPs). Here, we present an approach based on model-driven engineering (MDE) 2 to specify, design, and generate OpenCL applications. This approach relies on the following aspects: • We propose three new metamodels that satisfy essential concerns of a whole application— scheduling policy, variable definitions, and the OpenCL programming model itself.
Complete list of metadata

Cited literature [13 references]  Display  Hide  Download
Contributor : Frédéric Guyomarch <>
Submitted on : Tuesday, September 5, 2017 - 5:40:06 PM
Last modification on : Friday, November 13, 2020 - 2:56:11 PM


Publisher files allowed on an open archive




de Oliveira Rodrigues Antonio Wendell, Frédéric Guyomarc'H, Jean-Luc Dekeyser. An MDE Approach for Automatic Code Generation from UML/MARTE to OpenCL. Computing in Science and Engineering, Institute of Electrical and Electronics Engineers, 2012, 15 (1), pp.46-55. ⟨10.1109/MCSE.2012.35⟩. ⟨hal-01582200⟩



Record views


Files downloads