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.
Type de document :
Article dans une revue
Computing in Science and Engineering, Institute of Electrical and Electronics Engineers, 2012, 15 (1), pp.46-55. 〈10.1109/MCSE.2012.35〉
Liste complète des métadonnées

Littérature citée [16 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01582200
Contributeur : Frédéric Guyomarch <>
Soumis le : mardi 5 septembre 2017 - 17:40:06
Dernière modification le : jeudi 11 janvier 2018 - 06:22:13

Fichier

06171148.pdf
Fichiers éditeurs autorisés sur une archive ouverte

Identifiants

Collections

Citation

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〉

Partager

Métriques

Consultations de la notice

81

Téléchargements de fichiers

33