Abstract
The age of big data open the door to a new approach in data exploration and utilization. With the increasing complexities and dynamics of modern IT systems and services, it has become a challenge to effectively exploit parallelism on multicore platforms in computing systems that are heterogeneous, dynamic and decentralised. Self-aware software is a response to these demands in dealing with distributed applications in changing environments. It is a closed-loop system with a series of optimization strategies to adjust itself dynamicly during data processing. We focus on incorporating adaptation mechanisms into the stream programs for exposing distributed parallelism. In the traditional stream programming models, changing data and status normally require human supervision to adjust the stream graph for performance. As one-time optimization strategy, the reconfiguration and maintenance lead to costly and time-consuming procedures during the operating phase. To address these problems, we propose a self-aware stream programming model called StreamAware. A key property of this model is that exposing self-aware parallelism in the message driven execution paradigm, which provides dynamic and reconfigurable stream graph in adapting to the data flow changes. The model defines the self-awareness loop based on finite state machine for stream applications to adjust their own stream graph with continuous optimization strategy. This paper presents three different self-aware systems built using StreamAware. The empirical evaluation demonstrate how these systems can exploit self-aware parallelism using the Parsec benchmark problems, optimize performance per Watt, and respond to significant changes in stream processing.
Similar content being viewed by others
References
Wattsup.net.meter. (1997). http://www.wattsupmeters.com/
Agarwala, S., Poellabauer, C., Kong, J., Schwan, K., Wolf, M.: Resource-aware stream management with the customizable dproc distributed monitoring mechanisms. In: Proceedings. 12th IEEE International Symposium on High Performance Distributed Computing, 2003, pp. 250–259. IEEE (2003)
Ahmad, Y., Çetintemel, U.: Network-aware query processing for stream-based applications. In: Proceedings of the 13th International Conference on Very Large Data Bases-volume 30, pp. 456–467. VLDB Endowment (2004)
Ashcroft, E.A., Wadge, W.W.: Lucid, a nonprocedural language with iteration. Commun. ACM 20(7), 519–526 (1977)
Babaoglu, O.: Self-star Properties in Complex Information Systems: Conceptual and Practical Foundations, vol. 3460. Springer, Berlin (2005)
Babcock, B., Babu, S., Datar, M., Motwani, R., Widom, J.: Models and issues in data stream systems. In: Proceedings of the 21st ACM SIGMOD-SIGACT-SIGART Symposium on Principles of database systems, pp. 1–16. ACM (2002)
Barker, J.R., Tompkins, K.P.: Identification in the self-managing organization characteristics of target and tenure. Hum. Commun. Res. 21(2), 223–240 (1994)
Bienia, C., Kumar, S., Singh, J.P., Li, K.: The parsec benchmark suite: Characterization and architectural implications. In: Proceedings of the 17th international conference on Parallel architectures and compilation techniques, pp. 72–81. ACM (2008)
Boussinot, F., De Simone, R.: The esterel language. Proc. IEEE 79(9), 1293–1304 (1991)
Buck, J.T.: Static scheduling and code generation from dynamic dataflow graphs with integer-valued control streams. In: 1994 Conference Record of the Twenty-Eighth Asilomar Conference on Signals, Systems and Computers, 1994. vol. 1, pp. 508–513. IEEE (1994)
Buck, J.T., Lee, E.A.: Scheduling dynamic dataflow graphs with bounded memory using the token flow model. In: 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing, 1993. ICASSP-93, vol. 1, pp. 429–432. IEEE (1993)
Bunescu, R.C.: Learning with probabilistic features for improved pipeline models. In: Proceedings of the Conference on Empirical Methods in Natural Language Processing, pp. 670–679. Association for Computational Linguistics (2008)
Cao, F., Ester, M., Qian, W., Zhou, A.: Density-based clustering over an evolving data stream with noise. In: SDM. SIAM (2006)
Cohen, A., Duranton, M., Eisenbeis, C., Pagetti, C., Plateau, F., Pouzet, M.: N-synchronous kahn networks: a relaxed model of synchrony for real-time systems. In: ACM SIGPLAN Notices, vol. 41, pp. 180–193. ACM (2006)
Ding, L., Rundensteiner, E.A., Heineman, G.T.: Mjoin: a metadata-aware stream join operator. In: Proceedings of the 2nd International Workshop on Distributed Event-Based Systems, pp. 1–8. ACM (2003)
Erez, M., Ahn, J.H., Gummaraju, J., Rosenblum, M., Dally, W.J.: Executing irregular scientific applications on stream architectures. In: Proceedings of the 21st Annual International Xonference on Supercomputing, pp. 93–104. ACM (2007)
Golab, L., Özsu, M.T.: Issues in data stream management. ACM Sigmod Record 32(2), 5–14 (2003)
Gordon, M.I., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. SIGARCH Comput. Archit. News 34(5), 151–162 (2006)
Grahne, G., Zhu, J.: Efficiently using prefix-trees in mining frequent itemsets. FIMI vol. 3, 123–132 (2003)
Guha, S., Gunopulos, D., Koudas, N.: Correlating synchronous and asynchronous data streams. In: Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 529–534. ACM (2003)
Gummaraju, J., Rosenblum, M.: Stream programming on general-purpose processors. In: Proceedings 38th Annual IEEE/ACM International Symposium on Microarchitecture, 2005. MICRO-38, p. 12. IEEE (2005)
Gurout, T., Monteil, T., Costa, G.D., Calheiros, R.N., Buyya, R., Alexandru, M.: Energy-aware simulation with DVFS. Simul. Model. Pract. Theory 39, 76–91 (2013)
Hernndez: Yet another survey on simd instructions (2013)
Hoffmann, H., Maggio, M., Santambrogio, M.D., Leva, A., Agarwal, A.: Seec: A framework for self-aware computing (2010)
Jacobs, S., Eleftheriadis, A.: Streaming video using dynamic rate shaping and tcp congestion control. J. Vis. Commun. Image Represent. 9(3), 211–222 (1998)
Javadtalab, A., Omidyeganeh, M., Shirmohammandi, S., Hosseini, M.: On the suitability of current x264 rate controller algorithms for high definition video conferencing. In: 2011 International Symposium on Artificial Intelligence and Signal Processing (AISP), pp. 107–112 (2011)
Kapasi, U.J., Dally, W.J., Rixner, S., Owens, J.D., Khailany, B.: The imagine stream processor. In: Proceedings. 2002 IEEE International Conference on Computer Design: VLSI in Computers and Processors, 2002, pp. 282–288. IEEE (2002)
Kapasi, U.J., Rixner, S., Dally, W.J., Khailany, B., Ahn, J.H., Mattson, P., Owens, J.D.: Programmable stream processors. Computer 36(8), 54–62 (2003)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
de Kock, E.A., Smits, W., van der Wolf, P., Brunel, J.Y., Kruijtzer, W., Lieverse, P., Vissers, K.A., Essink, G.: Yapi: application modeling for signal processing systems. In: Proceedings of the 37th Annual Design Automation Conference, pp. 402–405. ACM (2000)
Kumar, V., Cooper, B.F., Cai, Z., Eisenhauer, G., Schwan, K.: Resource-aware distributed stream management using dynamic overlays. In: Proceedings of 25th IEEE International Conference on Distributed Computing Systems, 2005. ICDCS 2005, pp. 783–792. IEEE (2005)
Laddaga, R.: Guest editor’s introduction: creating robust software through self-adaptation. IEEE Intell. Syst. 14(3), 0026–29 (1999)
Lee, E., Messerschmitt, D.G.: Static scheduling of synchronous data flow programs for digital signal processing. IEEE Trans. Comput. 100(1), 24–35 (1987)
Lewis, P.R., Chandra, A., Parsons, S., Robinson, E., Glette, K., Bahsoon, R., Torresen, J., Yao, X.: A survey of self-awareness and its application in computing systems. In: 2011 Fifth IEEE Conference on Self-Adaptive and Self-Organizing Systems Workshops (SASOW), pp. 102–107. IEEE (2011)
Matko, D., Geiger, G., Gregoritza, W.: Pipeline simulation techniques. Math. Comput. Simul. 52(3), 211–230 (2000)
Matko, D., Geiger, G., Gregoritza, W.: Verification of various pipeline models. Math. Comput. Simul. 53(4), 303–308 (2000)
Mitchell, M.: Self-awareness and control in decentralized systems. In: AAAI Spring Symposium: Metacognition in Computation, pp. 80–85 (2005)
Mondada, F., Pettinaro, G.C., Guignard, A., Kwee, I.W., Floreano, D., Deneubourg, J.L., Nolfi, S., Gambardella, L.M., Dorigo, M.: Swarm-bot: a new distributed robotic concept. Auton. Robots 17(2–3), 193–221 (2004)
Murthy, P.K., Lee, E.A.: Multidimensional synchronous dataflow. IEEE Trans. Signal Process. 50(8), 2064–2079 (2002)
Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimhigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. IEEE Intell. Syst. Appl. 14(3), 54–62 (1999)
Pietzuch, P., Ledlie, J., Shneidman, J., Roussopoulos, M., Welsh, M., Seltzer, M.: Network-aware operator placement for stream-processing systems. In: ICDE’06. Proceedings of the 22nd International Conference on Data Engineering, 2006, pp. 49–49. IEEE (2006)
Rignot, E.: Changes in west antarctic ice stream dynamics observed with alos palsar data. Geophys. Res. Lett. 35(12), L12505 (2008)
Ruggiero, M., Guerri, A., Bertozzi, D., Poletti, F., Milano, M.: Communication-aware allocation and scheduling framework for stream-oriented multi-processor systems-on-chip. In: DATE’06. Proceedings of Design, Automation and Test in Europe, 2006, vol. 1, p. 6. IEEE (2006)
Stroustrup, B.: C++11-the new iso c++ standard (2013). http://www.stroustrup.com/C++11FAQ.html
Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14 (2009)
Schneider, D., Reich, W., Wiebel, A., Scheuermann, G.: Topology aware stream surfaces. In: Computer Graphics Forum, vol. 29, pp. 1153–1161. Wiley (2010)
Sermulins, J., Thies, W., Rabbah, R., Amarasinghe, S.: Cache aware optimization of stream programs. In: ACM SIGPLAN Notices, vol. 40, pp. 115–126. ACM (2005)
Sifakis, E., Neverov, I., Fedkiw, R.: Automatic determination of facial muscle activations from sparse motion capture marker data. In: ACM Transactions on Graphics (TOG), vol. 24, pp. 417–425. ACM (2005)
Spring, J.H., Privat, J., Guerraoui, R., Vitek, J.: Streamflex: high-throughput stream programming in java. ACM SIGPLAN Notices 42(10), 211–228 (2007)
Su, Y., Shi, F., Talpur, S., Wei, J., Tan, H.: Exploiting controlled-grained parallelism in message-driven stream programs. J. Supercomput. 70, 488–509 (2014)
Tawney, G.: Feeling and self-awareness. Psychol. Rev. 9(6), 570 (1902)
Thies, W., Karczmarek, M., Amarasinghe, S.: Streamit: a language for streaming applications. Compiler Construction, pp. 179–196. Springer, Berlin (2002)
Vassev, E., Hinchey, M.: Knowledge representation and awareness in autonomic service-component ensembles-state of the art. In: 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), pp. 110–119. IEEE (2011)
Wei, T., Chen, X., Mishra, P.: Designing a multi-core hard real-time test bed for energy measurement experiments. In: Proceedings of the 2009 ACM symposium on Applied Computing, pp. 1998–1999. ACM (2009)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Su, Y., Shi, F., Talpur, S. et al. Achieving self-aware parallelism in stream programs. Cluster Comput 18, 949–962 (2015). https://doi.org/10.1007/s10586-014-0412-x
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-014-0412-x