skip to main content
research-article

Input-driven dynamic execution prediction of streaming applications

Published:09 January 2010Publication History
Skip Abstract Section

Abstract

Streaming applications are promising targets for effectively utilizing multicores because of their inherent amenability to pipelined parallelism. While existing methods of orchestrating streaming programs on multicores have mostly been static, real-world applications show ample variations in execution time that may cause the achieved speedup and throughput to be sub-optimal. One of the principle challenges for moving towards dynamic orchestration has been the lack of approaches that can predict or accurately estimate upcoming dynamic variations in execution efficiently, well before they occur.

In this paper, we propose an automated dynamic execution behavior prediction approach that can be used to efficiently estimate the time that will be spent in different pipeline stages for upcoming inputs without requiring program execution. This enables dynamic balancing or scheduling of execution to achieve better speedup. Our approach first uses dynamic taint analysis to automatically generates an input-based execution characterization of the streaming program, which identifies the key control points where variation in execution might occur with the associated input elements that cause these variations.We then automatically generate a light-weight emulator from the program using this characterization that can simulate the execution paths taken for new streaming inputs and provide an estimate of execution time that will be spent in processing these inputs, enabling prediction of possible dynamic variations. We present experimental evidence that our technique can accurately and efficiently estimate execution behaviors for several benchmarks. Our experiments show that dynamic orchestration using our predicted execution behavior can achieve considerably higher speedup than static orchestration.

References

  1. A. Aho, M. Lam, R. Sethi, and J. Ullman. Compilers-Principles, Techniques, & Tools. Addison Wesley, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Buck et al. Brook for gpus: Stream computing on graphics hardware. In ACM Trans. on Graphics, 23(3):777--786, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. W. Cui, M. Peinado, K. Chen, H. Wang, and L. Irun-Briz. Tupni: Automatic reverse engineering of input formats. In Proceedings of the ACM Conference on Computer and Communications Security (CCS), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Douillet and G.R. Gao. Software-pipelining on multi-core architectures. In Proceedings of the International Conference on Parallel Architecture and Compilation Techniques, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Ferrante, K. Ottenstein, and J.D. Warren. The program dependence graph and its use in optimization. ACM Trans. on Programming Languages and Systems, 9(3), July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A.H. Ghamarian, M.C.W. Geilen, T. Basten, and S. Stuijk. Parametric throughput analysis of synchronous data flow graphs. In Proceedings of the conference on Design, automation and test in Europe, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M.I. Gordon, W. Thies, and S. Amarasinghe. Exploiting coarsegrained task, data, and pipeline parallelism in stream programs. In the Conference on Architectural Support for Programming Languages and Operating Systems, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Gummaraju and M. Rosenblum. Stream programming on generalpurpose processors. In Proceedings of the International Symposium on Microarchitecture, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H. Kim, M.A. Suleman, O. Mutlu, and Y.N. Patt. 2d-profling: Detecting input-dependent branches with a single input data set. In Proceedings of the International Symposium of Code Generation and Optimization, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. kudlur and S. Mahlke. Orchestrating the execution of stream programs on multicore platforms. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Kumar, R. Cledat, J. Sreeram, and S. Pande. Statistically analyzing execution variance for soft real-time applications. In In Proc. of the 21th Annual Workshop on Languages and Compilers for Parallel Computing (LCPC), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W.R. Mark., R.S. Glanville, K. Akeley, and M.J. Kilgard. Cg: A system for programming graphics hardware in a c-like language. In Proceedings of the Internationl Conference on Computer Graphics and Interactive Techniques, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Newsome and D. Song. Dynamic taint analysis for automatic detection, analysis and signature generation of exploits on commodity software. In Proceedings of the Annual Network and Distributed System Security Symposium, 2005.Google ScholarGoogle Scholar
  14. J. Nickolls and I. Buck. Nvidia cuda software and gpu parallel computing architecture. In Microprocessor Forum, 2007.Google ScholarGoogle Scholar
  15. G. Ottoni, R. Rangan, A. Stoler, and D.I. August. Automatic thread extraction with decoupled software pipelining. In Proceedings of the International Symposium on Microarchitecture, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Poplavko, T. Basten, and J. van Meerbergen. Execution-time prediction for dynamic streaming applications with task-level parallelism. In Proceedings of the Conference on Digital System Design Architectures, Methods and Tools, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Rangan, N. Vachharajani, M. Vachharajani, and D. August. Decoupled software pipelining with the synchronization array. In Proceedings of the International Conference on Parallel Architecture and Compilation Techniques, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. B.R. Rau. Iterative modulo scheduling: An algorithm for software pipelining loops. In Proceedings of the International Symposium on Microarchitecture, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B.D. Theelen, M.C.W. Geilen, T. Basten, J.M. Voeten, S.V. Gheorghita, and S. Stuijk. A scenario-aware data flow model for combined long-run average and worst-case performance analysis. In Proceedings of the International Conference on Formal Methods and Models for Co-Design, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. W. Thies, M. Karczmarek, and S. Amarasinghe. Streamit: A language for streaming applications. In Proceedings of the Internationl Symposium on Compiler Construction, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. Thies, V. Chandrasekhar, and S. Amarasinghe. A practical approach to exploiting coarse-grained pipeline parallelism in c programs. In Proceedings of the International Symposium on Microarchitecture, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Input-driven dynamic execution prediction of streaming applications

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 45, Issue 5
      PPoPP '10
      May 2010
      346 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1837853
      Issue’s Table of Contents
      • cover image ACM Conferences
        PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
        January 2010
        372 pages
        ISBN:9781605588773
        DOI:10.1145/1693453

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 January 2010

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!