Skip to main content

Can Transactions Enhance Parallel Programs?

  • Conference paper
  • 536 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,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.

This work is supported in part by the National Science Foundation under Grants No. 0103582-EIA, and 0429535-CCF.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Chapter  Google Scholar 

  3. Blume, W., et al.: Parallel Programming with Polaris. IEEE Computer, 78–82 (December 1996)

    Google Scholar 

  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. Dijkstra, E.W.: Co-operating Sequential Processes. In: Genuys, F. (ed.) Programming Languages, pp. 43–112 (1968)

    Google Scholar 

  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)

    Article  Google Scholar 

  7. Franklin, M.: The Multiscalar Architecture. PhD thesis, University of Wisconsin-Madison (November 1993)

    Google Scholar 

  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. Hall, M.W., et al.: Maximizing Multiprocessor Performance with the SUIF Compiler. IEEE Computer, 84–89 (December 1996)

    Google Scholar 

  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. Hansen, P.B.: Operating System Principles. Prentice-Hall, Englewood Cliffs (1973)

    MATH  Google Scholar 

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

    Chapter  Google Scholar 

  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. 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. Hammond, L., Nayfeh, B.A., Olukotun, K.: A Single-Chip Multiprocessor. IEEE Computer 30(9), 79–85 (1997)

    Google Scholar 

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

    Chapter  Google Scholar 

  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. OpenMP Architecture Review Board. OpenMP Fortran Application Program Interface (October 1997)

    Google Scholar 

  21. OpenMP Architecture Review Board. OpenMP Application Program Interface (May 2005), http://www.openmp.org/

  22. Peterson, G.L.: Myths about the Mutual Exclusion Problem. Information Processing Letters 12(3), 115–116 (1981)

    Article  MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

George Almási Călin Caşcaval Peng Wu

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Johnson, T.A., Lee, SI., Min, SJ., Eigenmann, R. (2007). Can Transactions Enhance Parallel Programs?. In: Almási, G., Caşcaval, C., Wu, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2006. Lecture Notes in Computer Science, vol 4382. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72521-3_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-72521-3_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-72520-6

  • Online ISBN: 978-3-540-72521-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics