This work has been partially supported by the EU H2020 grant “RePhrase: Refactoring Parallel Heterogeneous Resource-Aware Applications–a Software Engineering Approach” (ICT-644235), by COST Action IC1202 (TACLe), supported by COST (European Cooperation in Science and Technology) , by EPSRC grant “Discovery: Pattern Discovery and Program Shaping for Manycore Systems” (EP/P020631/1), and by Scottish Enterprise PS7305CA44.This paper describes a new technique for identifying potentially parallelisable code structures in functional programs. Higher-order functions enable simple and easily understood abstractions that can be used to implement a variety of common recursion schemes, such as maps and folds over traversable data structures. Many of t...
It has long been known that some of the most common uses of for and while-loops in imperative progra...
We investigate the claim that functional languages offer low-cost parallelism in the context of symb...
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (func...
This work has been partially supported by the EU H2020 grant “RePhrase: Refactoring Parallel Heterog...
This paper describes a new technique for identifying potentially parallelisable code structures in f...
No longer the preserve of specialist hardware, parallel devices are now ubiquitous. Pattern-based ...
Funding: EU FP7 grant “Parallel Patterns for Adaptive Heterogeneous Multicore Systems” (ICT-288570),...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
Recursion schemes, such as the well-known map, can be used as loci of potential parallelism, where s...
We propose a refactoring tool for the Haskell programming language, capable of introducing paralleli...
Conventional parallel programming is complex and error prone. To improve programmer productivity, w...
<p>With the emergence of commodity multicore architectures, exploiting tightly-coupled paralle...
If you want to program a parallel computer, a purely functional language like Haskell is a promising...
John Hughes [10] argues that the ability to decompose a problem into parts, depends upon the ability...
It has often been suggested that functional languages provide an excellent basis for programming par...
It has long been known that some of the most common uses of for and while-loops in imperative progra...
We investigate the claim that functional languages offer low-cost parallelism in the context of symb...
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (func...
This work has been partially supported by the EU H2020 grant “RePhrase: Refactoring Parallel Heterog...
This paper describes a new technique for identifying potentially parallelisable code structures in f...
No longer the preserve of specialist hardware, parallel devices are now ubiquitous. Pattern-based ...
Funding: EU FP7 grant “Parallel Patterns for Adaptive Heterogeneous Multicore Systems” (ICT-288570),...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
Recursion schemes, such as the well-known map, can be used as loci of potential parallelism, where s...
We propose a refactoring tool for the Haskell programming language, capable of introducing paralleli...
Conventional parallel programming is complex and error prone. To improve programmer productivity, w...
<p>With the emergence of commodity multicore architectures, exploiting tightly-coupled paralle...
If you want to program a parallel computer, a purely functional language like Haskell is a promising...
John Hughes [10] argues that the ability to decompose a problem into parts, depends upon the ability...
It has often been suggested that functional languages provide an excellent basis for programming par...
It has long been known that some of the most common uses of for and while-loops in imperative progra...
We investigate the claim that functional languages offer low-cost parallelism in the context of symb...
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (func...