Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/781498.781502acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article

Compiler support for speculative multithreading architecture with probabilistic points-to analysis

Published: 11 June 2003 Publication History
  • Get Citation Alerts
  • Abstract

    Speculative multithreading (SpMT) architecture can exploit thread-level parallelism that cannot be identified statically. Speedup can be obtained by speculatively executing threads in parallel that are extracted from a sequential program. However, performance degradation might happen if the threads are highly dependent, since a recovery mechanism will be activated when a speculative thread executes incorrectly and such a recovery action usually incurs a very high penalty. Therefore, it is essential for SpMT to quantify the degree of dependences and to turn off speculation if the degree of dependences passes certain thresholds. This paper presents a technique that quantitatively computes dependences between loop iterations and such information can be used to determine if loop iterations can be executed in parallel by speculative threads. This technique can be broken into two steps. First probabilistic points-to analysis is performed to estimate the probabilities of points-to relationships in case there are pointer references in programs, and then the degree of dependences between loop iterations is computed quantitatively. Preliminary experimental results show compiler-directed thread-level speculation based on the information gathered by this technique can achieve significant performance improvement on SpMT.

    References

    [1]
    A. Berson, S. Smith, and K. Thearling. Building Data Mining Applications for CRM. McGraw-Hill, 1999.
    [2]
    M. Burke, P. Carini, J.-D. Choi, and M. Hind. Flow-insensitive interprocedural alias analysis in the presence of pointers. In Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing, Columbus, Ohio, August 1995.
    [3]
    M. C. Carlisle and A. Rogers. Software caching and computation migration in olden. In Proceedings of ACM SIGPLAN Conference on Principles and Practice of Parallel Programming, pages 29--39, July 1995.
    [4]
    R.-G. Chang, T.-R. Chuang, and J. K. Lee. Efficient support of parallel sparse computation for array intrinsic functions of Fortran 90. In Conference Proceedings of the 1998 International Conference on Supercomputing, pages 45--52, Melbourne, Australia, July 13--17, 1998. ACM SIGARCH.
    [5]
    R.-G. Chang, J.-S. Li, J. K. Lee, and T.-R. Chuang. Probabilistic inference schemes for sparsity structures of fortran 90 array intrinsics. In 2001 International Conference on Parallel Processing (ICPP '01, pages 61--68, Washington - Brussels - Tokyo, Sept. 2001. IEEE.
    [6]
    J.-D. Choi, M. Burke, and P. Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 232--245. ACM Press, 1993.
    [7]
    B. D. and T. Austin. The SimpleScalar Tool Set, Version 3.0. Unversity of Wisconsin Madison Computer Science Department.
    [8]
    M. Das. Unification-based pointer analysis with directional assignments. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI-00), volume 35.5 of ACM Sigplan Notices, pages 35--46, N.Y., June ~18--21 2000. ACM Press.
    [9]
    A. Deutsch. Interprocedural May-Alias analysis for pointers: Beyond k-limiting. SIGPLAN Notices, 29(6):230--241, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
    [10]
    M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural Points-to analysis in the presence of function pointers. SIGPLAN Notices, 29(6):242--256, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
    [11]
    L. Hammond, B. Hubbert, M. Siu, M. Prabhu, M. Chen, and K. Olukotun. The stanford hydra cmp. IEEE MICRO Magazine, March-April 2000.
    [12]
    M. S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, New York, 1 edition, 1977.
    [13]
    G.-H. Hwang, J. K. Lee, and R. D.-C. Ju. A function-composition approach to synthesize Fortran~90 array operations. Journal of Parallel and Distributed Computing, 54(1):1--47, 10~Oct. 1998.
    [14]
    G.-H. Hwang, J. K. Lee, and R. D.-C. Ju. Array operation synthesis to optimize HPF programs on distributed memory machines. Journal of Parallel and Distributed Computing, 61(4):467--500, Apr. 2001.
    [15]
    Y.-S. Hwang, P.-S. Chen, J. K. Lee, and R. D.-C. Ju. Probabilistic points-to analysis. In Proceedings of the 2001 International Workshop on Languages and Compilers for Parallel Computing, August 2001.
    [16]
    Intel Corporation. IA-64 Application Developer's Architecture Guide, 1999.
    [17]
    D.-C. R. Ju, J.-F. Collard, and K. Oukbir. Probabilistic memory disambiguation and its application to data speculation. In G. Lee and P.-C. Yew, editors, Third Workshop on Interaction between Compilers and Computer Architectures (INTERACT-3), San Jose, CA, Oct. 1998.
    [18]
    B. W. Kernighan and D. M. Ritchie. The C programming language, Second Edition. Prentice Hall, 1988.
    [19]
    R. Krishnaiyer, D. Kulkarni, D. M. Lavery, W. Li, C.-C. Lim, J. Ng, and D. C. Sehr. An advanced optimizer for the ia-64 architecture. IEEE Micro, 20(6):60--68, November/December 2000.
    [20]
    V. Krishnan and J. Torrellas. A chip-multiprocessor architecture with speculative multithreading. IEEE Transactions on Computers, 48(9):866--880, 1999.
    [21]
    W. Landi and B. G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. SIGPLAN Notices, 27(7):235--248, July 1992. Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation.
    [22]
    J. K. Lee, D. Ho, and Y.-C. Chuang. Data distribution analysis and optimization for pointer based distributed programs. In Proceedings of the 1997 International Conference on Parallel Processing (ICPP '97), pages 56--63, Washington - Brussels - Tokyo, Aug. 1997. IEEE Computer Society Press.
    [23]
    Y.-J. Lin, Y.-S. Hwang, and J. K. Lee. Compiler optimizations with dsp-specific semantic descriptions. In Proceedings of the 2002 International Workshop on Languages and Compilers for Parallel Computing, July 2002.
    [24]
    S. S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers, 2929 Campus Drive, Suite 260, San Mateo, CA 94403, USA, 1997.
    [25]
    J. Oplinger, D. Heine, S.-W. Liao, B. A. Nayfeh, M. S. Lam, and K. Olukotun. Software and hardware for exploiting speculative parallelism with a multiprocessor. Technical Report CSL-TR-97-715, Stanford University, February 1997.
    [26]
    G. Ramalingam. Data flow frequency analysis. In Proceedings of the ACM SIGPLAN '96 conference on Programming language design and implementation, pages 267--277. ACM Press, 1996.
    [27]
    E. Ruf. Context-insensitive alias analysis reconsidered. SIGPLAN Notices, 30(6):13--22, June 1995. Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation.
    [28]
    R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN '99 conference on Programming language design and implementation, pages 77--90. ACM Press, 1999.
    [29]
    M. Shapiro and S. Horwitz. Fast and accurate flow-insensitive points-to analysis. In Conference Record of POPL '97: 24nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1--14, Paris, France, Jan. 1997.
    [30]
    M. D. Smith. The SUIF Machine Library. Division of of Engineering and Applied Science, Harvard University, March 1998.
    [31]
    G. S. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In 25 Years ISCA: Retrospectives and Reprints, pages 521--532, 1998.
    [32]
    B. Steensgaard. Points-to analysis in almost linear time. In Conference Record of POPL '96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 32--41, St. Petersburg Beach, Florida, Jan. 1996.
    [33]
    B. Stroustrup. The C++ programming language. Addison-Wesley, 1991.
    [34]
    The Stanford SUIF Compiler Group. The SUIF Library. Stanford University, 1995.
    [35]
    J.-Y. Tsai, J. Huang, C. Amlo, D. J. Lilja, and P.-C. Yew. The superthreaded processor architecture. IEEE Transactions on Computers, 48(9):881--902, 1999.
    [36]
    J.-Y. Tsai, Z. Jiang, and P.-C. Yew. Compiler techniques for the superthreaded architectures. International Journal of Parallel Programming, 27(1):1--19, 1999.
    [37]
    T. A. Wagner, V. Maverick, S. L. Graham, and M. A. Harrison. Accurate static estimators for program optimization. In Proceedings of the ACM SIGPLAN '94 conference on Programming language design and implementation, pages 85--96. ACM Press, 1994.
    [38]
    R. P. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for c programs. In Proceedings of the conference on Programming language design and implementation, pages 1--12. ACM Press, 1995.
    [39]
    P. Wu, P. Feautrier, D. Padua, and Z. Sura. Instance-wise points-to analysis for loop-based dependence testing. In Proceedings of the 16th international conference on Supercomputing, pages 262--273. ACM Press, 2002.
    [40]
    S. H. Yong, S. Horwitz, and T. Reps. Pointer analysis for programs with structures and casting. SIGPLAN Notices, 34(5):91--103, May 1999. Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation.
    [41]
    Y.-P. You, C.-R. Lee, and J. K. Lee. Compiler analysis and supports for leakage power reduction on microprocessors. In Proceedings of the 2002 International Workshop on Languages and Compilers for Parallel Computing, July 2002.

    Cited By

    View all
    • (2020)T4: Compiling Sequential Code for Effective Speculative Parallelization in Hardware2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA45697.2020.00024(159-172)Online publication date: May-2020
    • (2016)Exhaustive analysis of thread-level speculationProceedings of the 3rd International Workshop on Software Engineering for Parallel Systems10.1145/3002125.3002127(25-34)Online publication date: 21-Oct-2016
    • (2016)A Survey on Thread-Level Speculation TechniquesACM Computing Surveys10.1145/293836949:2(1-39)Online publication date: 30-Jun-2016
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PPoPP '03: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
    June 2003
    250 pages
    ISBN:1581135882
    DOI:10.1145/781498
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 10
      Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming (PPoPP 2003) and workshop on partial evaluation and semantics-based program manipulation (PEPM 2003)
      October 2003
      331 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/966049
      Issue’s Table of Contents
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 11 June 2003

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. dependence analysis
    2. parallelization
    3. probabilistic points-to analysis
    4. speculative multithreading

    Qualifiers

    • Article

    Conference

    PPoPP03
    Sponsor:

    Acceptance Rates

    PPoPP '03 Paper Acceptance Rate 20 of 45 submissions, 44%;
    Overall Acceptance Rate 230 of 1,014 submissions, 23%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)9
    • Downloads (Last 6 weeks)1

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)T4: Compiling Sequential Code for Effective Speculative Parallelization in Hardware2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA45697.2020.00024(159-172)Online publication date: May-2020
    • (2016)Exhaustive analysis of thread-level speculationProceedings of the 3rd International Workshop on Software Engineering for Parallel Systems10.1145/3002125.3002127(25-34)Online publication date: 21-Oct-2016
    • (2016)A Survey on Thread-Level Speculation TechniquesACM Computing Surveys10.1145/293836949:2(1-39)Online publication date: 30-Jun-2016
    • (2014)Targeted Update --- Aggressive Memory Abstraction Beyond Common Sense and Its Application on Static Numeric AnalysisProceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 841010.1007/978-3-642-54833-8_28(534-553)Online publication date: 5-Apr-2014
    • (2012)Efficient and accurate data dependence profiling using software signaturesProceedings of the Tenth International Symposium on Code Generation and Optimization10.1145/2259016.2259041(186-195)Online publication date: 31-Mar-2012
    • (2012)ParagonProceedings of the 5th Annual Workshop on General Purpose Processing with Graphics Processing Units10.1145/2159430.2159438(64-73)Online publication date: 3-Mar-2012
    • (2012)Support of Probabilistic Pointer Analysis in the SSA FormIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2012.7323:12(2366-2379)Online publication date: 1-Dec-2012
    • (2010)Speculative parallelization of partial reduction variablesProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772975(141-150)Online publication date: 24-Apr-2010
    • (2010)Prophet Synchronization Thread Model and Compiler SupportProceedings of the International Symposium on Parallel and Distributed Processing with Applications10.1109/ISPA.2010.83(81-87)Online publication date: 6-Sep-2010
    • (2010)Experiences of using a dependence profiler to assist parallelization for multi-cores2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW)10.1109/IPDPSW.2010.5470884(1-8)Online publication date: Apr-2010
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media