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 2003Publication History

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. D. and T. Austin. The SimpleScalar Tool Set, Version 3.0. Unversity of Wisconsin Madison Computer Science Department.Google ScholarGoogle Scholar
  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. Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Hammond, B. Hubbert, M. Siu, M. Prabhu, M. Chen, and K. Olukotun. The stanford hydra cmp. IEEE MICRO Magazine, March-April 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, New York, 1 edition, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Intel Corporation. IA-64 Application Developer's Architecture Guide, 1999.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  18. B. W. Kernighan and D. M. Ritchie. The C programming language, Second Edition. Prentice Hall, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. V. Krishnan and J. Torrellas. A chip-multiprocessor architecture with speculative multithreading. IEEE Transactions on Computers, 48(9):866--880, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers, 2929 Campus Drive, Suite 260, San Mateo, CA 94403, USA, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. D. Smith. The SUIF Machine Library. Division of of Engineering and Applied Science, Harvard University, March 1998.Google ScholarGoogle Scholar
  31. G. S. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In 25 Years ISCA: Retrospectives and Reprints, pages 521--532, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. B. Stroustrup. The C++ programming language. Addison-Wesley, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. The Stanford SUIF Compiler Group. The SUIF Library. Stanford University, 1995.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

      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
        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

        Copyright © 2003 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: 11 June 2003

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        PPoPP '03 Paper Acceptance Rate20of45submissions,44%Overall Acceptance Rate230of1,014submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader