Automated design of OpenCL programs based on algebra-algorithmic approach

А.Yu. Doroshenko, M.M. Bondarenko, O.A. Yatsenko


Further progress in improving the quality of parallel software development is linked to the use of heterogeneous architectures of parallel computing systems. Heterogeneous parallel systems, in particular, include hybrid computing platforms combining the use of central and graphics processing units. One of the facilities for programming such systems is OpenCL. The paper proposes the further development of previously developed algebra-algorithmic tools in the direction of automated design and synthesis of OpenCL programs. The particular feature of the proposed approach consists in using a high-level language based on Glushkov’s system of algorithmic algebra. The approach is illustrated on the development of a parallel interpolation algorithm, which is the part of the numerical weather forecasting program. The results of the experiment consisting in executing of the generated OpenCL program on a graphics processing unit are given. The program is compared with the implementation for CUDA platform.

 Problems in programming 2019; 1: 27-36


automated software design; algorithm algebra; CUDA; heterogeneous parallel computing systems; meteorological forecasting; OpenCL; software synthesis


OpenCL Overview. The open standard for parallel programming of heterogeneous systems. [Online] Available from: [Accessed: 22 January 2019] P. 28–36. (in Ukrainian)

Rodrigues A., Guyomarc'h F. & Dekeyser J. L. (2012) An MDE approach for automatic code generation from UML/MARTE to OpenCL. Computing in Science and Engineering. 15 (1). P. 46–55.


Li P., Brunet E., Trahay F., Parrot C., Thomas G. & Namyst R. (2015) Automatic OpenCL code generation for multi-device heterogeneous architectures. In Proc. 44th International Conference on Parallel Processing (ICPP 2015). Beijing, China, CrossRef

Tillet P., Rupp K. & Selberherr S. (2012) An automatic OpenCL compute kernel generator for basic linear algebra operations. In Proc. 2012 Symposium on High Performance Computing (HPC'12). Orlando, Florida, USA, 26 30 March 2012. San Diego, CA: Society for Computer Simulation International. P. 4:1–4:2.

Steuwer M., Fensch C., Lindley S. & Dubach C. (2015) Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code. In Proc. 20th ACM SIGPLAN International Conference on Functional Programming (ICFP'15). Vancouver, Canada, 31 August – 2 September 2015. New York: ACM. P. 205–217.


Doroshenko A. & Shevchenko R. (2006) A rewriting framework for rule-based programming dynamic applications. Fundamenta Informaticae. 72 (1–3). P. 95–108.

Doroshenko A., Zhereb K. & Yatsenko O. (2013) Developing and optimizing parallel programs with algebra-algorithmic and term rewriting tools. In Proc. 9th International Conference "ICT in Education, Research, and Industrial Applications" (ICTERI 2013), Revised Selected Papers. Kherson, Ukraine, 19 22 June 2013. Berlin: Springer. 412. P. 70–92. CrossRef



  • There are currently no refbacks.