Dataflow Architectures have been explored extensively in the past and are now re-evaluated from a different perspective as they can provide a viable solution to efficiently exploit multi/many core chips. Indeed, the dataflow paradigm provides an elegant solution to distribute the computations on the available cores by starting computations based on the availability of their input data.\\ In this paper, %we recall recent developments in computer architecure that allow efficient %support for a dataflow execution model and we refer to the DTA (Decoupled Threaded Architecture) -- which relies on a dataflow execution model -- to show how Haskell could benefit from an architecture that matches the functional nature of that language. A compilation toolchain based on the so called External Core -- an intermediate representation used by Haskell -- has been implemented for most common data types and operations and in particular to support concurrent paradigms (e.g. MVars, ForkIO) and Transactional Memory (TM).\\ We performed initial experiments to understand the efficiency of our code both against hand-coded DTA programs and against GHC generated code for the x86 architecture. Moreover we analyzed the performance of a simple shared-counter benchmark that is using TM in Haskell in both DTA and x86. The results of these experiments clearly show a great potential for accelerating Haskell: for example the number of dynamically executed instructions can be more than one order of magnitude lower in case of Haskell+DTA compared to x86. Also the number of memory accesses is drastically reduced in DTA.
Scheda prodotto non validato
Scheda prodotto in fase di analisi da parte dello staff di validazione
|Titolo:||Transactional Memory on a Dataflow Architecture for Accelerating Haskell|
|Citazione:||GIORGI, R. (2015). Transactional Memory on a Dataflow Architecture for Accelerating Haskell. WSEAS TRANSACTIONS ON COMPUTERS, 14, 546-558.|
|Appare nelle tipologie:||1.1 Articolo in rivista|