Can Transactions Enhance Parallel Programs?

  • Troy A. Johnson
  • Sang-Ik Lee
  • Seung-Jai Min
  • Rudolf Eigenmann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4382)

Abstract

Transactional programming constructs have been proposed as key elements of advanced parallel programming models. Currently, it is not well understood to what extent such constructs enable efficient parallel program implementations and ease parallel programming beyond what is possible with existing techniques. To help answer these questions, we investigate the technology underlying transactions and compare it to existing parallelization techniques. We also consider the most important parallelizing transformation techniques and look for opportunities to further improve them through transactional constructs or – vice versa – to improve transactions with these transformations. Finally, we evaluate the use of transactions in the SPEC OMP benchmarks.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Adl-Tabatabai, A.-R., et al.: Compiler and Runtime Support for Efficient Software Transactional Memory. In: Proceedings of the Conference on Programming Language Design and Implementation, June, pp. 26–37 (2006)Google Scholar
  2. 2.
    Aslot, V., et al.: SPEComp: A New Benchmark Suite for Measuring Parallel Computer Performance. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 1–10. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Blume, W., et al.: Parallel Programming with Polaris. IEEE Computer, 78–82 (December 1996)Google Scholar
  4. 4.
    Carlstrom, B.D., et al.: The ATOMOS Transactional Programming Language. In: Proceedings of the Conference on Programming Language Design and Implementation, June, pp. 1–13 (2006)Google Scholar
  5. 5.
    Dijkstra, E.W.: Co-operating Sequential Processes. In: Genuys, F. (ed.) Programming Languages, pp. 43–112 (1968)Google Scholar
  6. 6.
    Eigenmann, R., Hoeflinger, J., Padua, D.: On the Automatic Parallelization of the Perfect Benchmarks. IEEE Transactions of Parallel and Distributed Systems 9(1), 5–23 (1998)CrossRefGoogle Scholar
  7. 7.
    Franklin, M.: The Multiscalar Architecture. PhD thesis, University of Wisconsin-Madison (November 1993)Google Scholar
  8. 8.
    Gopal, S., et al.: Speculative Versioning Cache. In: 4th IEEE Symposium on HPCA, February 1998, pp. 195–205. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  9. 9.
    Hall, M.W., et al.: Maximizing Multiprocessor Performance with the SUIF Compiler. IEEE Computer, 84–89 (December 1996)Google Scholar
  10. 10.
    Hammond, L., Willey, M., Olukotun, K.: Data Speculation Support for a Chip Multiprocessor. In: Proc. of the 8th International Conference on ASPLOS (1998)Google Scholar
  11. 11.
    Hansen, P.B.: Operating System Principles. Prentice-Hall, Englewood Cliffs (1973)MATHGoogle Scholar
  12. 12.
    Harris, T., et al.: Optimizing Memory Transactions. In: Proceedings of the Conference on Programming Language Design and Implementation, June 2006, pp. 14–25 (2006)Google Scholar
  13. 13.
    Hummel, J., Hendren, L.J., Nicolau, A.: A general data dependence test for dynamic, pointer-based data structures. In: PLDI ’94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, Orlando, Florida, United States, pp. 218–229. ACM Press, New York (1994), doi:10.1145/178243.178262CrossRefGoogle Scholar
  14. 14.
    Johnson, T.A., Eigenmann, R., Vijaykumar, T.N.: Min-Cut Program Decomposition for Thread-Level Speculation. In: Proceedings of the Conference on Programming Language Design and Implementation, June, pp. 59–70 (2004)Google Scholar
  15. 15.
    Kumar, S., et al.: Hybrid Transactional Memory. In: Proceedings of the Symposium on Principles and Practices of Parallel Programming, pp. 209–220 (2006)Google Scholar
  16. 16.
    Hammond, L., Nayfeh, B.A., Olukotun, K.: A Single-Chip Multiprocessor. IEEE Computer 30(9), 79–85 (1997)Google Scholar
  17. 17.
    Min, S.-J., Eigenmann, R.: Combined Compile-time and Runtime-driven Pro-active Data Movement in Software DSM Systems. In: Proc. of Seventh Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers (LCR2004), pp. 1–6 (2004)Google Scholar
  18. 18.
    Min, S.-J., et al.: Portable Compilers for OpenMP. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 11–19. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  19. 19.
    Moshovos, A., et al.: Dynamic Speculation and Synchronization of Data Dependences. In: Proceedings of the 24th ISCA, June, pp. 181–193 (1997)Google Scholar
  20. 20.
    OpenMP Architecture Review Board. OpenMP Fortran Application Program Interface (October 1997)Google Scholar
  21. 21.
    OpenMP Architecture Review Board. OpenMP Application Program Interface (May 2005), http://www.openmp.org/
  22. 22.
    Peterson, G.L.: Myths about the Mutual Exclusion Problem. Information Processing Letters 12(3), 115–116 (1981)MATHCrossRefGoogle Scholar
  23. 23.
    Rauchwerger, L., Padua, D.: The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization. In: The ACM SIGPLAN ’95 Conference on Programming Language Design and Implementation (PLDI’95), Jun. 1995, pp. 218–232. ACM Press, New York (1995)CrossRefGoogle Scholar
  24. 24.
    Sohi, G.S., Breach, S.E., Vijaykumar, T.N.: Multiscalar processors. In: The 22th International Symposium on Computer Architecture (ISCA-22), June, pp. 414–425 (1995)Google Scholar
  25. 25.
    Tu, P., Padua, D.: Automatic Array Privatization. In: Banerjee, U., et al. (eds.) Languages and Compilers for Parallel Computing. LNCS, vol. 768, pp. 500–521. Springer, Heidelberg (1994)Google Scholar
  26. 26.
    Vijaykumar, T.N., Sohi, G.S.: Task Selection for a Multiscalar Processor. In: Proc. of the 31st International Symposium on Microarchitecture, December (1998)Google Scholar
  27. 27.
    Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: PLDI ’04: Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, Washington DC, USA, pp. 131–144. ACM Press, New York (2004), doi:10.1145/996841.996859CrossRefGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Troy A. Johnson
    • 1
  • Sang-Ik Lee
    • 1
  • Seung-Jai Min
    • 1
  • Rudolf Eigenmann
    • 1
  1. 1.School of Electrical and Computer Engineering, Purdue University, West Lafayette, IN 47907 

Personalised recommendations