Skip to main content
Log in

Integrating Transactions into the Data-Driven Multi-threading Model Using the TFlux Platform

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

The introduction of multi-core processors has renewed the interest in programming models which can efficiently exploit general purpose parallelism. Data-Flow is one such model which has demonstrated significant potential in the past. However, it is generally associated with functional styles of programming which do not deal well with shared mutable state. There have been a number of attempts to introduce state into Data-Flow models and functional languages but none have proved able to maintain the simplicity and efficiency of pure Data-Flow parallelism. Transactional memory is a concurrency control mechanism that simplifies sharing data when developing parallel applications while at the same time promises to deliver affordable performance. In this paper we report our experience of integrating Transactional Memory and Data-Flow within the TFlux Platform. The ability of the Data-Flow model to expose large amounts of parallelism is maintained while Transactional Memory provides simplified sharing of mutable data in those circumstances where it is important to the expression of the program. The isolation property of transactions ensures that the exploitation of Data-Flow parallelism is not compromised. In this study we extend the TFlux platform, a Data-Driven Multi-threading implementation, to support transactions. We achieve this by proposing new pragmas that allow the programmer to specify transactions. In addition we extend the runtime functionality by integrating a software transactional memory library with TFlux. To test the proposed system, we ported two applications that require transactional memory: Random Counter and Labyrinth an implementation of Lee’s parallel routing algorithm. Our results show good opportunities for scaling when using the integration of the two models.

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

Similar content being viewed by others

References

  1. Ansari, M., Kotselidis, C., Jarvis, K., Luján, M., Kirkham, C.C., Watson, I.: Advanced concurrency control for transactional memory using transaction commit rate. In: Euro-Par, pp. 719–728 (2008)

  2. Ansari, M., Luján, M., Kotselidis, C., Jarvis, K., Kirkham, C.C., Watson, I.: Steal-on-abort: improving transactional memory performance through dynamic transaction reordering. In: HiPEAC, pp. 4–18 (2009)

  3. Barth, P.S., Nikhil, R.S., Arvind: M-structures: Extending a parallel, non-strict, functional language with state. In: Proceedings of the 5th ACM conference on functional programming languages and computer architecture, pp. 538–568. Springer, London, UK (1991). http://dl.acm.org/citation.cfm?id=645420.652538

  4. Cann, D.: Retire Fortran? A debate rekindled. Commun. ACM 35, 81–89 (1992)

    Article  Google Scholar 

  5. Costas, K., Evripidou, P., Trancoso, P.: Data-driven multithreading using conventional microprocessors. IEEE Trans. Parallel Distrib. Syst. 17, 1176–1188 (2006)

    Article  Google Scholar 

  6. Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. In: Proceedings of the 6th Conference on Symposium on Opearting Systems Design and Implementation (2004)

  7. Dice, D., Shalev, O., Shavit, N.: Transactional locking II. In: Proceedings of the 20th International Symposium on Distributed Computing (DISC) (2006)

  8. Giorgi, R., Popovic, Z., Puzovic, N.: Dta-c: A decoupled multi-threaded architecture for CMP systems. In: 19th International Symposium on Computer Architecture and High Performance Computing, 2007. SBAC-PAD 2007, pp. 263–270 (2007)

  9. Gurd, J.R., Kirkham, C.C., Watson, I.: The manchester prototype dataflow computer. Commun. ACM 28, 34–52 (1985)

    Article  Google Scholar 

  10. Harris, T., Larus, J., Rajwar, R.: Transactional memory. Synth. Lect. Comput. Archit. 5(1), 1–263 (2010)

    Article  MathSciNet  Google Scholar 

  11. Hogg, J.D., Reid, J.K., Scott, J.A.: Design of a multicore sparse cholesky factorization using dags. SIAM J. Sci. Comput. 32(6), 3627–3649 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  12. Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. ACM Comput. Surv. 36, 1–34 (2004)

    Article  Google Scholar 

  13. Jones, S.P., Gordon, A., Finne, S.: Concurrent haskell. In: Annual symposium on principles of programming languages, pp. 295–308. ACM (1996)

  14. Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)

    Google Scholar 

  15. Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: Stamp: Stanford transactional applications for multi-processing. In IISWC’08: Proceedings of The IEEE International Symposium on Workload Characterization (2008)

  16. Papadopoulos, G.M., Culler, D.E.: Monsoon: an explicit token-store architecture. In: Proceedings of the 17th Annual International Symposium on Computer Architecture, ISCA’90, pp. 82–91 (1990)

  17. Pascal, F., Christof, F., Torvald, R.: Dynamic performance tuning of word-based software transactional memory. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP) (2008)

  18. Peyton Jones, S.L.: Beautiful Concurrency (2007). http://research.microsoft.com/Users/simonpj/papers/stm/index.htm

  19. Sreeram, J., Cledat, R., Kumar, T., Pande, S.: Rstm : A relaxed consistency software transactional memory for multicores. In: International Conference on Parallel Architectures and Compilation Techniques (2007). http://doi.ieeecomputersociety.org/10.1109/PACT.2007.62

  20. Stavrou, K., Evripidou, P., Trancoso, P.: DDM-CMP: data-driven multithreading on a chip multiprocessor. Embed. Comput. Syst. Archit. Model. Simul. 3553, 205–224 (2005)

    Google Scholar 

  21. Stavrou, K., Nikolaides, M., Pavlou, D., Arandi, S., Evripidou, P., Trancoso, P.: Tflux: a portable platform for data-driven multithreading on commodity multicore systems. In: 37th International Conference on Parallel Processing, pp. 25–34 (2008)

  22. Syme, D., Granicz, A., Cisternino, A.: Expert F# (Expert’s Voice in.Net)

  23. Giorgi, R., Badia, R.M., Bodin, F., Cohen, A., Evripidou, P., Faraboschi, P., et al.: TERAFLUX: Harnessing dataflow in next generation teradevices. Microprocess. Microsy. 38(8),976–990 (2014)

  24. Tomov, S., Nath, R., Ltaief, H., Dongarra, J.: Dense linear algebra solvers for multicore with GPU accelerators. In: International Symposium on Parallel and Distributed Processing (2010)

  25. Trancoso, P., Stavrou, K., Evripidou, P.: DDMCPP: the data-driven multithreading C pre-processor. In Proceedings of the 11th Interact-11, pp. 32–39 (2007)

  26. Watson, I., Kirkham, C., Luján, M.: A study of a transactional parallel routing algorithm. In: PACT’07 Proceedings of the 16th international conference on parallel architecture and compilation techniques, pp. 388–398 (2007)

  27. Watson, I., Woods, V., Watson, P., Banach, R., Greenberg, M., Sargeant, J.: Flagship: a parallel architecture for declarative programming. In: ISCA, pp. 124–130 (1988)

Download references

Acknowledgments

The authors would like to thank HiPEAC Network of Excellence for the collaboration Grant and TERAFLUX project founded by the EC with Grant Agreement Number 249013. Dr. Luján is supported by a Royal Society University Research Fellowship.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andreas Diavastos.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Diavastos, A., Trancoso, P., Luján, M. et al. Integrating Transactions into the Data-Driven Multi-threading Model Using the TFlux Platform. Int J Parallel Prog 44, 257–277 (2016). https://doi.org/10.1007/s10766-015-0369-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-015-0369-2

Keywords

Navigation