Paraforming: forming parallel haskell programs using novel refactoring techniques
Trends in Functional Programming: 12th International Symposium, TFP 2011 …, 2012•Springer
Enabling programmers to “think parallel” is critical if we are to be able to effectively exploit
future multicore/manycore architectures. This paper introduces paraforming: a new
approach to constructing parallel functional programs using formally-defined refactoring
transformations. We introduce a number of new refactorings for Parallel Haskell that capture
common parallel abstractions, such as divide-and-conquer and data parallelism, and show
how these can be used by HaRe, the Haskell Refactorer. Using a paraforming approach, we …
future multicore/manycore architectures. This paper introduces paraforming: a new
approach to constructing parallel functional programs using formally-defined refactoring
transformations. We introduce a number of new refactorings for Parallel Haskell that capture
common parallel abstractions, such as divide-and-conquer and data parallelism, and show
how these can be used by HaRe, the Haskell Refactorer. Using a paraforming approach, we …
Abstract
Enabling programmers to “think parallel” is critical if we are to be able to effectively exploit future multicore/manycore architectures. This paper introduces paraforming: a new approach to constructing parallel functional programs using formally-defined refactoring transformations. We introduce a number of new refactorings for Parallel Haskell that capture common parallel abstractions, such as divide-and-conquer and data parallelism, and show how these can be used by HaRe, the Haskell Refactorer. Using a paraforming approach, we are able to easily obtain significant and scalable speedups (up to 7.8 on an 8-core machine).
Springer