Skip to main content
Log in

Transactional Memory for Unstructured Mesh Simulations

  • Published:
Journal of Scientific Computing Aims and scope Submit manuscript

Abstract

In this paper we study transactional memory (TM) as a new tool for threading codes in this new era of multi- and many-core computers. In particular, we investigate the features and study the applicability of transactional memory as an efficient and easy-to-use alternative for handling memory conflicts in unstructured mesh simulations that use shared memory. The software tool used for our preliminary analysis of this novel construct is IBM’s freely available Software Transactional Memory (STM) system. For our studies, we developed the BUSTM benchmark which is a test code with state-of-the-art unstructured-mesh bookkeeping. The numerical algorithms are simplified yet still exhibit most of the salient features of modern unstructured mesh methods. We apply STM to two frequently used algorithm types used in multi-physics codes with realistic 3-D meshes. Our computational experiments indicate a good fit between these application scenarios and the TM features.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Bihari, B.L.: Applicability of transactional memory to modern codes. In: International Conference on Numerical Analysis and Applied Mathematics 2010 (ICNAAM 2010) Conference Proceedings, APS, Rodos, Greese, pp. 1764–1767 (2010)

    Google Scholar 

  2. Bihari, B.L., Gyllenhaal, J., Futral, S., Spelce, T.: Experiments Using IBM’s Software Transactional Memory Compiler, ScicomP Meeting, Barcelona, Spain (2009). http://spscicomp.org/ScicomP15/slides/user/bihari.pdf

  3. Bihari, B.L., Ota, D., Liu, Z., Ramakrishnan, S.V.: Multiresolution method on general unstructured meshes. AIAA J. 40(7), 1323–1330 (2002)

    Article  Google Scholar 

  4. Bihari, B.L., Shankar, V., Palaniswamy, S.: Massively parallel implementation of an explicit CFD algorithm on unstructured grids, II. In: Parallel Computational Fluid Dynamics (ParCFD’97), pp. 241–248. Elsevier, New York (1998)

    Chapter  Google Scholar 

  5. Cascaval, C., Blundell, C.M., Michael, H.W., Cain, P.W., Chiras, S., Chatterjee, S.: Software transactional memory: why is it only a research toy? ACM Queue 6(5), 46–58 (2008)

    Article  Google Scholar 

  6. Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News 51(2), 289–300 (1993)

    Article  Google Scholar 

  7. IBM: Concurrent Building Block (2008). http://sourceforge.net/projects/amino-cbbs/

  8. IBM: IBM XL C/C++ for Transactional Memory for AIX, V0.9 Language Extensions and Users Guide (2008). http://dl.alphaworks.ibm.com/technologies/xlcstm/xlcstm-whitepaper.pdf

  9. Larus, J.R., Kozyrakis, C.: Transactional memory: is TM the answer for improving parallel programming? Commun. ACM 51(7), 80–88 (2008)

    Article  Google Scholar 

  10. Vezolle, P., Fournier, Y., Moulinec, C., Tallet, N.: Multithreads and MPI adaptive AMG linear solver for parallel Navier-Stokes approaches. In: Pareng 2011 Conference Proceedings, Civil-Comp, Corsica, France (2011)

    Google Scholar 

  11. Wong, M.: In: IBM XL C/C++ for Transactional Memory for AIX. 2008 (2009). http://www-949.ibm.com/software/rational/cafe/blogs/ccpp-parallel-multicore/2009/08/11/ibms-alphaworks-software-transactional-memory-compiler

    Google Scholar 

  12. Wong, M., Bihari, B.L., de Supinski, B.R., Wu, P., Liu, Y.M.M., Chen, W.: A case for including transactions in OpenMP. In: IWOMP 2010 Conference Proceedings, Tsukuba, Japan. LNCS, vol. 6132, pp. 149–160 (2010)

    Google Scholar 

  13. Wu, P., Michael, M., von Praun, C., Nakaike, T., Bordawekar, R., Cain, H., Cascaval, C., Chatterjee, S., Chiras, S., Hou, R., Mergen, M., Shen, X., Spear, M., Wang, H.Y., Wang, K.: Compiler and runtime techniques for software transactional memory optimization. J. Concurr. Comput. Pract. Experience. 7–23

Download references

Acknowledgements

The author wishes to thank John Gyllenhaal and Scott Futral of Livermore Computing (LC) for numerous fruitful discussions on this subject and for support of this work, as well as to David Fox, also of LC, for facilitating all the runs on the (now retired) IBM Power5 system. The author also acknowledges past financial support from Rockwell International, Boeing, and Hypercomp, Inc. in developing the unstructured mesh bookkeeping used in the experiments, and from Icon Consulting and IBM in writing the BUSTM code.

The author also appreciates the many thoughtful and detailed comments of the referees, most of which contributed to an improved revised version.

A substantial part of this work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DEAC52-07NA27344 (LLNL-CONF-422888).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Barna L. Bihari.

Additional information

Dedicated to the 70th Birthday of Professor Stan Osher.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bihari, B.L. Transactional Memory for Unstructured Mesh Simulations. J Sci Comput 54, 311–332 (2013). https://doi.org/10.1007/s10915-012-9643-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10915-012-9643-2

Keywords

Navigation