solutions in our work may introduce additional over-
head and resource utilization which are important fac-
tors in the targeted domain (e.g., control-type, soft
real-time systems).
7 CONCLUSIONS
An existing solution that provides support in devel-
opment of embedded systems with GPUs is the us-
age of flexible components. However, its realiza-
tion introduced unnecessary overheads, which we ad-
dressed in this paper through the concept of flexible
groups. A flexible group encloses connected flexi-
ble components with the same hardware allocation,
in a conceptual component. Furthermore, we pro-
vided an algorithm to identify the flexible groups in
a given component-based system, and the generation
rules that automatically realize groups as regular com-
ponents. The generation rules are implemented using
a state-of-the-practice component model (i.e., Rubus).
The benefits of adopting our solution are examined
through the vision system of an underwater robot. It
is showed an improved execution time with flexible
groups, compared with the existing solution.
For future directions, we consider in developing a
method that automatically provides optimized alloca-
tion schemes of the flexible components in a given
embedded system with GPU. The challenge is in-
creased by the heterogeneity of the hardware (i.e.,
CPU and GPU) and the variability allocation of the
flexible components. The method considers optimiza-
tion goals that are important in the embedded systems
domain, such as performance, memory and energy us-
age.
ACKNOWLEDGMENTS
The Swedish Foundation for Strategic Research (SSF)
supports our work through the RALF3 project (IIS11-
0060).
REFERENCES
Ahlberg, C., Asplund, L., Campeanu, G., Ciccozzi, F., Ek-
strand, F., Ekstr
¨
om, M., Feljan, J., Gustavsson, A.,
Sentilles, S., Svogor, I., et al. (2013). The Black Pearl:
An autonomous underwater vehicle.
AMD (2006). ATI CTM Guide - Technical Refer-
ene Manual. http://roland.pri.ee/doktor/papers/gpgpu/
ATI CTM Guide.pdf. Accessed: 2017-10-14.
Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K.,
Houston, M., and Hanrahan, P. (2004). Brook for
GPUs: stream computing on graphics hardware. In
ACM Transactions on Graphics (TOG), volume 23,
pages 777–786. ACM.
Campeanu, G., Carlson, J., and Sentilles, S. (2017). Flex-
ible components for development of embedded sys-
tems with GPUs. In 24th Asia-Pacific Software Engi-
neering Conference. To appear.
Crnkovic, I., Sentilles, S., Vulgarakis, A., and Chaudron,
M. R. (2011). A classification framework for software
component models. IEEE Transactions on Software
Engineering, 37(5):593–615.
H
¨
anninen, K., M
¨
aki-Turja, J., Nolin, M., Lindberg, M.,
Lundb
¨
ack, J., and Lundb
¨
ack, K.-L. (2008). The Rubus
component model for resource constrained real-time
systems. In Industrial Embedded Systems, 2008. SIES
2008. International Symposium on, pages 177–183.
IEEE.
Hong, C., Chen, D., Chen, W., Zheng, W., and Lin, H.
(2010). MapCG: writing parallel program portable
between CPU and GPU. In Proceedings of the 19th
international conference on Parallel architectures and
compilation techniques, pages 217–226. ACM.
John, K.-H. and Tiegelkamp, M. (2010). IEC 61131-3: Pro-
gramming industrial automation systems: Concepts
and programming languages, requirements for pro-
gramming systems, decision-making aids. Springer
Science & Business Media.
L
´
ev
ˆ
eque, T., Carlson, J., Sentilles, S., and Borde, E. (2011).
Flexible semantic-preserving flattening of hierarchi-
cal component models. In Software Engineering and
Advanced Applications (SEAA), 2011 37th EUROMI-
CRO Conference on, pages 31–38. IEEE.
Linderman, M. D., Collins, J. D., Wang, H., and Meng,
T. H. (2008). Merge: a programming model for het-
erogeneous multi-core systems. In ACM SIGOPS op-
erating systems review, volume 42. ACM.
Radermacher, A., G
¨
urcan,
¨
O., Cuccuru, A., G
´
erard, S., and
Hamid, B. (2015). Split of composite components for
distributed applications. In Languages, Design Meth-
ods, and Tools for Electronic System Design, pages
265–280. Springer.
Rothenberger, M. A., Jain, H., and Sugumaran, V. (2017). A
platform-based design approach for flexible software
components. Journal of Information Technology The-
ory and Application (JITTA), 18(2):3.
Sarkar, S., Mitra, S., and Srinivasan, A. (2012). Reuse and
refactoring of GPU kernels to design complex applica-
tions. In Parallel and Distributed Processing with Ap-
plications (ISPA), 2012 IEEE 10th International Sym-
posium on, pages 134–141. IEEE.
Sentilles, S., Vulgarakis, A., Bures, T., Carlson, J., and
Crnkovic, I. (2008). A component model for control-
intensive distributed embedded systems. In CBSE,
volume 8, pages 310–317. Springer.
Stone, J. E., Phillips, J. C., Freddolino, P. L., Hardy, D. J.,
Trabuco, L. G., and Schulten, K. (2007). Acceler-
ating molecular modeling applications with graphics
processors. Journal of computational chemistry.
Optimized Realization of Software Components with Flexible OpenCL Functionality
87