Skip to Main Content
The electrical and electronic engineerings have used parallel programming to solve their large scale complex problems for performance reasons. However, as parallel programming requires a non-trivial distribution of tasks and data, developers find it hard to implement their applications effectively. Thus, in order to reduce design complexity, we propose an approach to generate code for hybrid architectures (e.g., CPU + GPU) using OpenCL, an open standard for parallel programming of heterogeneous systems. This approach is based on Model Driven Engineering (MDE) and the MARTE profile, standard proposed by Object Management Group (OMG). The aim is to provide resources to non-specialists in parallel programming to implement their applications. Moreover, thanks to model reuse ability, we can add/change functionalities and the target architecture. Consequently, this approach helps industries to achieve their time-to-market constraints which are confirmed here by experimental tests. Besides the software development at high-level abstractions, this approach aims to improve performance by using multi-GPU environments. A case study based on the Conjugate Gradient method gives clarity to our methodology.