Transactional Access to Shared Memory in StarSs, a Task Based Programming Model

  • Rahulkumar Gayatri
  • Rosa M. Badia
  • Eduard Ayguade
  • Mikel Luján
  • Ian Watson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7484)

Abstract

With an increase in the number of processors on a single chip, programming environments which facilitate the exploitation of parallelism on multicore architectures have become a necessity. StarSs is a task-based programming model that enables a flexible and high level programming. Although task synchronization in StarSs is based on data flow and dependency analysis, some applications (e.g. reductions) require locks to access shared data.

Transactional Memory is an alternative to lock-based synchronization for controlling access to shared data. In this paper we explore the idea of integrating a lightweight Software Transactional Memory (STM) library, TinySTM , into an implementation of StarSs (SMPSs). The SMPSs runtime and the compiler have been modified to include and use calls to the STM library. We evaluated this approach on four applications and observe better performance in applications with high lock contention.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
    Duran, A., Perez, J.M., Ayguadé, E., Badia, R.M., Labarta, J.: Extending the OpenMP Tasking Model to Allow Dependent Tasks. In: Eigenmann, R., de Supinski, B.R. (eds.) IWOMP 2008. LNCS, vol. 5004, pp. 111–122. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Felber, P., Fetzer, C., Riegel, T.: Dynamic performance tuning of word-based software transactional memory. In: PPoPP 2008, Salt Lake City, Utah, USA. ACM (2008)Google Scholar
  7. 7.
    Frigo, M., Leiserson, C.E., Randall, K.H.: The implementation of the cilk-5 multithreaded language. In: Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 1998, Montreal, Canada. ACM (1998)Google Scholar
  8. 8.
    Harris, T., Larus, J., Rajwar, R.: Transactional Memory, 2nd edn. Morgan and Claypool Publishers (2010)Google Scholar
  9. 9.
    Perez, J.M., Badia, R.M., Labarta, J.: A dependency-aware task-based programming environment for multi-core architectures. In: IEEE Int. Conference on Cluster Computing, pp. 142–151 (September 2008)Google Scholar
  10. 10.
    Perez, J.M., Badia, R.M., Labarta, J.: Handling task dependencies under strided and aliased references. In: Proceedings of the 24th ACM International Conference on Supercomputing, ICS 2010, pp. 263–274. ACM, New York (2010)CrossRefGoogle Scholar
  11. 11.
    Riegel, T., Felber, P., Fetzer, C.: A lazy snapshot algorithm with eager validation. In: Proceedings of the 20th International Symposium on Distributed ComputingGoogle Scholar
  12. 12.
    Shavit, N., Touitou, D.: Software transactional memory. In: 14th ACM Symposium on the Principles of Distributed Computing, Ottowa, Ontario, Canada. ACM (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Rahulkumar Gayatri
    • 1
    • 2
  • Rosa M. Badia
    • 1
    • 3
  • Eduard Ayguade
    • 1
    • 2
  • Mikel Luján
    • 4
  • Ian Watson
    • 4
  1. 1.Barcelona Supercomputing CenterBarcelonaSpain
  2. 2.Universitat Politècnica de CatalunyaSpain
  3. 3.Artificial Intelligence Research Institute (IIIA)Spanish National Research Council (CSIC)Spain
  4. 4.University of ManchesterUK

Personalised recommendations