Service Level Objectives via C++11 Attributes

  • Dalvan GrieblerEmail author
  • Daniele De Sensi
  • Adriano Vogel
  • Marco Danelutto
  • Luiz Gustavo Fernandes
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11339)


In recent years, increasing attention has been given to the possibility of guaranteeing Service Level Objectives (SLOs) to users about their applications, either regarding performance or power consumption. SLO can be implemented for parallel applications since they can provide many control knobs (e.g., the number of threads to use, the clock frequency of the cores, etc.) to tune the performance and power consumption of the application. Different from most of the existing approaches, we target sequential stream processing applications by proposing a solution based on C++ annotations. The user specifies which parts of the code to parallelize and what type of requirements should be enforced on that part of the code. Our solution first automatically parallelizes the annotated code and then applies self-adaptation approaches at run-time to enforce the user-expressed objectives. We ran experiments on different real-world applications, showing its simplicity and effectiveness.


Parallel programming Adaptive and autonomic computing Power-aware computing Domain-specific language 



This study was financed in part by the Coordenação de Aperfeiçoamento de Pessoal de Nivel Superior - Brasil (CAPES) - Finance Code 001, by the EU H2020-ICT-2014-1 project RePhrase (No. 644235), and by the FAPERGS 01/2017-ARD project ParaElastic (No. 17/2551-0000871-5).


  1. 1.
    Aldinucci, M., Danelutto, M., Kilpatrick, P., Torquati, M.: FastFlow: high-level and efficient streaming on multi-core. In: Programming Multi-core and Many-core Computing Systems, PDC, vol. 1, p. 14. Wiley (2014)Google Scholar
  2. 2.
    Alessi, F., Thoman, P., Georgakoudis, G., Fahringer, T., Nikolopoulos, D.S.: Application-level energy awareness for OpenMP. In: Terboven, C., de Supinski, B.R., Reble, P., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2015. LNCS, vol. 9342, pp. 219–232. Springer, Cham (2015). Scholar
  3. 3.
    Andrade, H.C.M., Gedik, B., Turaga, D.S.: Fundamentals of Stream Processing. Cambridge University Press, New York (2014)CrossRefGoogle Scholar
  4. 4.
    Beyer, B., Jones, C., Petoff, J., Murphy, N.R.: Site Reliability Engineering. O’Reilly, Boston (2016)Google Scholar
  5. 5.
    Chandrakasan, A.P., Brodersen, R.W.: Minimizing power consumption in digital CMOS circuits. Proc. IEEE 83(4), 498–523 (1995)CrossRefGoogle Scholar
  6. 6.
    Danelutto, M., Garcia, J.D., Sanchez, L.M., Sotomayor, R., Torquati, M.: Introducing parallelism by using REPARA C++11 attributes. In: Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, pp. 354–358. IEEE (2016)Google Scholar
  7. 7.
    De Sensi, D., De Matteis, T., Danelutto, M.: Simplifying self-adaptive and power-aware computing with Nornir. Future Gener. Comput. Syst. 87, 136–151 (2018)CrossRefGoogle Scholar
  8. 8.
    De Sensi, D., Torquati, M., Danelutto, M.: A reconfiguration algorithm for power-aware parallel applications. ACM Trans. Architect. Code Optim. 13(4), 43:1–43:25 (2016)Google Scholar
  9. 9.
    Floratou, A., Agrawal, A., Graham, B., Rao, S., Ramasamy, K.: Dhalion: self-regulating stream processing in heron. Proc. VLDB Endowment 10, 1825–1836 (2017)CrossRefGoogle Scholar
  10. 10.
    Griebler, D., Danelutto, M., Torquati, M., Fernandes, L.G.: SPar: a DSL for high-level and productive stream parallelism. Parallel Process. Lett. 27(01), 20 (2017)MathSciNetCrossRefGoogle Scholar
  11. 11.
    Griebler, D., Hoffmann, R.B., Danelutto, M., Fernandes, L.G.: High-level and productive stream parallelism for Dedup, Ferret, and Bzip2. Int. J. Parallel Program., 1–19 (2018)Google Scholar
  12. 12.
    Griebler, D., Hoffmann, R.B., Danelutto, M., Fernandes, L.G.: Higher-level parallelism abstractions for video applications with SPar. In: Parallel Computing is Everywhere, Proceedings of the International Conference on Parallel Computing, ParCo 2017, pp. 698–707. IOS Press, Bologna (2017)Google Scholar
  13. 13.
    Maggio, M., Hoffmann, H., Santambrogio, M.D., Agarwal, A., Leva, A.: Controlling software applications via resource allocation within the heartbeats framework. In: IEEE Conference on Decision and Control, pp. 3736–3741. IEEE (2010)Google Scholar
  14. 14.
    Maurer, J., Wong, M.: Towards support for attributes in C++ (revision 6). Technical report, The C++ Standards Committee (2008)Google Scholar
  15. 15.
    McCool, M., Robison, A.D., Reinders, J.: Structured Parallel Programming: Patterns for Efficient Computation. Morgan Kaufmann, Burlington (2012)Google Scholar
  16. 16.
    Reinders, J.: Intel Threading Building Blocks. O’Reilly, Newton (2007)Google Scholar
  17. 17.
    Shafik, R.A., Das, A., Yang, S., Merrett, G., Al-Hashimi, B.M.: Adaptive energy minimization of OpenMP parallel applications on many-core systems. In: Parallel Programming and Run-Time Management Techniques, pp. 19–24 (2015)Google Scholar
  18. 18.
    Sturm, R., Morris, W., Jander, M.: Foundations of Service Level Management. SAMS, Boston (2000)Google Scholar
  19. 19.
    Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: a language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 179–196. Springer, Heidelberg (2002). Scholar
  20. 20.
    Weyuker, E.J.: Evaluating software complexity measures. IEEE Trans. Softw. Eng. 14(9), 1357–1365 (1988)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Dalvan Griebler
    • 1
    • 3
    Email author
  • Daniele De Sensi
    • 2
  • Adriano Vogel
    • 1
  • Marco Danelutto
    • 2
  • Luiz Gustavo Fernandes
    • 1
  1. 1.School of TechnologyPontifical Catholic University of Rio Grande do SulPorto AlegreBrazil
  2. 2.Department of Computer ScienceUniversity of PisaPisaItaly
  3. 3.Laboratory of Advanced Research on Cloud ComputingTrês de Maio FacultyTrês de MaioBrazil

Personalised recommendations