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

Multi-core processors have renewed 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. 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.

[1]  Mikel Luján,et al.  Advanced Concurrency Control for Transactional Memory Using Transaction Commit Rate , 2008, Euro-Par.

[2]  Ian Watson,et al.  The Manchester prototype dataflow computer , 1985, CACM.

[3]  Roberto Giorgi,et al.  DTA-C: A Decoupled multi-Threaded Architecture for CMP Systems , 2007 .

[4]  Paraskevas Evripidou,et al.  DDM-CMP: Data-Driven Multithreading on a Chip Multiprocessor , 2005, SAMOS.

[5]  Robin Milner,et al.  Definition of standard ML , 1990 .

[6]  David E. Culler,et al.  Monsoon: an explicit token-store architecture , 1998, ISCA '98.

[7]  Torvald Riegel,et al.  Dynamic performance tuning of word-based software transactional memory , 2008, PPoPP.

[8]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[9]  Mikel Luján,et al.  Steal-on-Abort: Improving Transactional Memory Performance through Dynamic Transaction Reordering , 2008, HiPEAC.

[10]  Jennifer A. Scott,et al.  Design of a Multicore Sparse Cholesky Factorization Using DAGs , 2010, SIAM J. Sci. Comput..

[11]  Arvind,et al.  M-Structures: Extending a Parallel, Non-strict, Functional Language with State , 1991, FPCA.

[12]  Paraskevas Evripidou,et al.  TFlux: A Portable Platform for Data-Driven Multithreading on Commodity Multicore Systems , 2008, 2008 37th International Conference on Parallel Processing.

[13]  Mikel Luján,et al.  A Study of a Transactional Parallel Routing Algorithm , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[14]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[15]  James R. Larus,et al.  Transactional Memory, 2nd edition , 2010, Transactional Memory.

[16]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[17]  Jack J. Dongarra,et al.  Dense linear algebra solvers for multicore with GPU accelerators , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[18]  Kunle Olukotun,et al.  STAMP: Stanford Transactional Applications for Multi-Processing , 2008, 2008 IEEE International Symposium on Workload Characterization.

[19]  David C. Cann,et al.  Retire Fortran?: a debate rekindled , 1992, CACM.

[20]  Santosh Pande,et al.  RSTM : A Relaxed Consistency Software Transactional Memory for Multicores , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[21]  Paul Watson,et al.  Flagship: a parallel architecture for declarative programming , 1988, [1988] The 15th Annual International Symposium on Computer Architecture. Conference Proceedings.

[22]  Paraskevas Evripidou,et al.  Data-Driven Multithreading Using Conventional Microprocessors , 2006, IEEE Transactions on Parallel and Distributed Systems.