Accelerating Haskell on a Dataflow Architecture : a case study including Transactional Memory

A possible direction for exploiting the computational power of multi/many core chips is to rely on a massive usage of Thread Level Parallelism (TLP). We focus on the Decoupled Threaded Architecture, a hybrid dataflow architecture which efficiently uses TLP by decoupling and scheduling threads on chip processing elements in order to provide on-chip scalable performance. The DTA architecture currently lacks a specific mapping to high level languages. Our idea is to use a functional language to match this execution paradigm because we think it is very fit for this environment. We choose Haskell as our language and in particular one of the features we want to implement is the concurrency control based on Transactional Memory, which is fully supported in Haskell. The main goal of this research is twofold. First, the study of a method to unite the functional paradigm of the Haskell programming language with the DTA execution paradigm. Second, the development of a Transactional Memory model for DTA architecture based on the STM (Software Transactional Memory) API. Our results show promising speedup of the Haskell based front-end for the DTA architecture. Key–Words: Multithreaded Architecture, Data-flow Architecture, Haskell, Transactional Memory

[1]  Eduard Ayguadé,et al.  Transactional Memory: An Overview , 2007, IEEE Micro.

[2]  Andrew Tolmach An External Representation for the GHC Core Language , 2001 .

[3]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[4]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[5]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[6]  Paolo Faraboschi,et al.  An Introduction to DF-Threads and their Execution Model , 2014, 2014 International Symposium on Computer Architecture and High Performance Computing Workshop.

[7]  Milo M. K. Martin,et al.  Subtleties of transactional memory atomicity semantics , 2006, IEEE Computer Architecture Letters.

[8]  Avi Mendelson,et al.  The TERAFLUX Project: Exploiting the DataFlow Paradigm in Next Generation Teradevices , 2013, 2013 Euromicro Conference on Digital System Design.

[9]  Simon L. Peyton Jones,et al.  Secrets of the Glasgow Haskell Compiler inliner , 2002, Journal of Functional Programming.

[10]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[11]  Roberto Giorgi,et al.  DTA-C: A Decoupled multi-Threaded Architecture for CMP Systems , 2007, 19th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'07).

[12]  Simon L. Peyton Jones,et al.  System F with type equality coercions , 2007, TLDI '07.

[13]  Mateo Valero,et al.  Dissecting Transactional Executions in Haskell , 2007 .

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

[15]  Graham Hutton,et al.  Programming in Haskell , 2007 .

[16]  Roberto Giorgi TERAFLUX: exploiting dataflow parallelism in teradevices , 2012, CF '12.

[17]  Simon L. Peyton Jones,et al.  Compiling Haskell by Program Transformation: A Report from the Trenches , 1996, ESOP.

[18]  Roberto Giorgi,et al.  A scalable thread scheduling co-processor based on data-flow principles , 2015, Future Gener. Comput. Syst..

[19]  Avi Mendelson,et al.  TERAFLUX: Harnessing dataflow in next generation teradevices , 2014, Microprocess. Microsystems.

[20]  Krishna M. Kavi,et al.  Scheduled Dataflow: Execution Paradigm, Architecture, and Performance Evaluation , 2001, IEEE Trans. Computers.

[21]  James R. Larus,et al.  Transactional Memory (Synthesis Lectures on Computer Architecture) , 2007 .