Towards On-the-fly Self-Adaptation of Stream Parallel Patterns

Stream processing applications compute streams of data and provide insightful results in a timely manner, where parallel computing is necessary for accelerating the application executions. Considering that these applications are becoming increasingly dynamic and long-running, a potential solution is to apply dynamic runtime changes. However, it is challenging for humans to continuously monitor and manually self-optimize the executions. In this paper, we propose self-adaptiveness of the parallel patterns used, enabling flexible on-the-fly adaptations. The proposed solution is evaluated with an existing programming framework and running experiments with a synthetic and a real-world application. The results show that the proposed solution is able to dynamically self-adapt to the most suitable parallel pattern configuration and achieve performance competitive with the best static cases. The feasibility of the proposed solution encourages future optimizations and other applicabilities.

[1]  Tiziano De Matteis,et al.  Keep calm and react with foresight: strategies for low-latency and energy-efficient elastic data stream processing , 2016, PPoPP.

[2]  Marco Danelutto,et al.  Minimizing Self-adaptation Overhead in Parallel Stream Processing for Multi-cores , 2019, Euro-Par Workshops.

[3]  Weng-Fai Wong,et al.  Gloss: Seamless Live Reconfiguration and Reoptimization of Stream Programs , 2018, ASPLOS.

[4]  Marco Danelutto,et al.  SPar: A DSL for High-Level and Productive Stream Parallelism , 2017, Parallel Process. Lett..

[5]  Gabriele Mencagli,et al.  Power‐aware pipelining with automatic concurrency control , 2019, Concurr. Comput. Pract. Exp..

[6]  Enrico Bini,et al.  Enforcing Deadlines for Skeleton-based Parallel Programming , 2020, 2020 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[7]  Scott Shenker,et al.  Adaptive Stream Processing using Dynamic Batch Sizing , 2014, SoCC.

[8]  Dalvan Griebler,et al.  Providing high‐level self‐adaptive abstractions for stream parallelism on multicores , 2021, Softw. Pract. Exp..

[9]  Peter Kilpatrick,et al.  Algorithmic Skeletons and Parallel Design Patterns in Mainstream Parallel Programming , 2020, International Journal of Parallel Programming.

[10]  Kun-Lung Wu,et al.  Elastic Scaling for Data Stream Processing , 2014, IEEE Transactions on Parallel and Distributed Systems.

[11]  Marco Danelutto,et al.  Autonomic and Latency-Aware Degree of Parallelism Management in SPar , 2018, Euro-Par Workshops.

[12]  Marco Danelutto,et al.  Higher-Level Parallelism Abstractions for Video Applications with SPar , 2017, PARCO.

[13]  Marco Danelutto,et al.  FastFlow: High-level and Efficient Streaming on Multi-core , 2017 .

[14]  Scott A. Mahlke,et al.  Flextream: Adaptive Compilation of Streaming Applications for Heterogeneous Architectures , 2009, 2009 18th International Conference on Parallel Architectures and Compilation Techniques.

[15]  Robert Grimm,et al.  A catalog of stream processing optimizations , 2014, ACM Comput. Surv..

[16]  Fatos Xhafa,et al.  Programming multi-core and many-core computing systems , 2014 .

[17]  Ananth Grama,et al.  VAYU: Accelerating stream processing applications through dynamic network-aware topology re-optimization , 2018, J. Parallel Distributed Comput..

[18]  Marco Danelutto,et al.  Simplifying self-adaptive and power-aware computing with Nornir , 2018, Future Gener. Comput. Syst..