skip to main content
10.1145/1772954.1772974acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
research-article

Prospect: a compiler framework for speculative parallelization

Published:24 April 2010Publication History

ABSTRACT

Making efficient use of modern multi-core and future many-core CPUs is a major challenge. We describe a new compiler-based platform, Prospect, that supports the parallelization of sequential applications. The underlying approach is a generalization of an existing approach to parallelize runtime checks. The basic idea is to generate two variants of the application: (1) a fast variant having bare bone functionality, and (2) a slow variant with extra functionality. The fast variant is executed sequentially. Its execution is divided into epochs.

Each epoch is re-executed by an executor using the slow variant. The approach scales by running the executors on multiple cores in parallel to each other and to the fast variant. We have implemented the Prospect framework to evaluate this approach. Prospect allows custom plug-ins for generating the fast and slow variants. With the help of our novel StackLifter, a process can switch between the fast variant and the slow variant during runtime at arbitrary positions.

References

  1. P. Briggs, K. D. Cooper, T. J. Harvey, and L. T. Simpson. Practical improvements to the construction and destruction of static single assignment form. Softw. Pract. Exper., 28(8):859--881, 1998. ISSN 0038-0644. doi: http://dx.doi.org/10.1002/(SICI)1097-024X(19980710)28:8-859::AID-SPE188-3.0.CO;2-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In IISWC '08: Proceedings of The IEEE International Symposium on Workload Characterization, September 2008.Google ScholarGoogle ScholarCross RefCross Ref
  3. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst., 13(4):451--490, 1991. ISSN 0164-0925. doi: http://doi.acm.org/10.1145/115372.115320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. J. Fink and F. Qian. Design, implementation and evaluation of adaptive recompilation with on--stack replacement. In CGO '03: Proceedings of the international symposium on Code generation and optimization, pages 241--252, Washington, DC, USA, 2003. IEEE Computer Society. ISBN 0-7695-1913-X. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. K. Kelsey, T. Bai, C. Ding, and C. Zhang. Fast track: A software system for speculative program optimization. In CGO '09: Proceedings of the 2009 International Symposium on Code Generation and Optimization, pages 157--168, Washington, DC, USA, 2009. IEEE Computer Society. ISBN 978-0-7695-3576-0. doi: http://dx.doi.org/10.1109/CGO.2009.18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04), California, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 190--200, New York, NY, USA, 2005. ACM. ISBN 1-59593-056-6. doi: http://doi.acm.org/10.1145/1065010.1065034. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Makris and R. A. Bazzi. Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction. In Proceedings of the USENIX '09 Annual Technical Conference, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. B. Meyer. Object-Oriented Software Construction. Prentice Hall PTR, March 2000. ISBN 0136291554. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. M. L. Munoz. Boost.multiindex example of use of sequenced indices. http://www.boost.org/libs/multi index, September 2009. Version 1.34.Google ScholarGoogle Scholar
  11. I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical dynamic software updating for c. SIGPLAN Not., 41(6):72---83, 2006. ISSN 0362-1340. doi: http://doi.acm.org/10.1145/1133255.1133991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Newsome and D. Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proceedings of the Network and Distributed System Security Symposium (NDSS 2005), 2005.Google ScholarGoogle Scholar
  13. E. B. Nightingale, P. M. Chen, and J. Flinn. Speculative execution in a distributed file system. SIGOPS Oper. Syst. Rev., 39(5):191--205, 2005. ISSN 0163-5980. doi: http://doi.acm.org/10.1145/1095809.1095829. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. B. Nightingale, D. Peek, P. M. Chen, and J. Flinn. Parallelizing security checks on commodity hardware. SIGARCH Comput. Archit. News, 36 :308--318, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. O. Ruwase, P. B. Gibbons, T. C. Mowry, V. Ramachandran, S. Chen, M. Kozuch, and M. Ryan. Parallelizing dynamic information flow tracking. In SPAA '08: Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures, pages 35--45, New York, NY, USA, 2008. ACM. ISBN 978-1-59593-973-9. doi: http://doi.acm.org/10.1145/1378533.1378538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. M. Srinivasan, S. Kandula, C. R. Andrews, and Y. Zhou. Flashback: a lightweight extension for rollback and deterministic replay for software debugging. In ATEC '04: Proceedings of the annual conference on USENIX Annual Technical Conference, pages 3--3, Berkeley, CA, USA, 2004. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Sußkraut, S. Weigert, U. Schiffel, T. Knauth, M. Nowack, D. Becker de Brum, and C. Fetzer. Speculation for parallelizing runtime checks. In Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2009), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Wallace and K. Hazelwood. Superpin: Parallelizing dynamic instrumentation for real-time performance. In CGO '07: Proceedings of the International Symposium on Code Generation and Optimization, pages 209--220, Washington, DC, USA, 2007. IEEE Computer Society. ISBN 0-7695-2764-7. doi: http://dx.doi.org/10.1109/CGO.2007.37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Zilles and G. Sohi. Master/slave speculative parallelization. In MICRO 35: Proceedings of the 35th annual ACM/IEEE international symposium on Microarchitecture, pages 85--96, Los Alamitos, CA, USA, 2002. IEEE Computer Society Press. ISBN 0-7695-1859-1. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Prospect: a compiler framework for speculative parallelization

    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
    • Published in

      cover image ACM Conferences
      CGO '10: Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
      April 2010
      300 pages
      ISBN:9781605586359
      DOI:10.1145/1772954

      Copyright © 2010 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 April 2010

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate312of1,061submissions,29%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader