Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Cramming more components onto integrated circuits
Readings in computer architecture
Interactive Parallel Programming using the ParaScope Editor
IEEE Transactions on Parallel and Distributed Systems
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Haskell tools from the programatica project
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Algorithm + strategy = parallelism
Journal of Functional Programming
Parallel functional programming in Eden
Journal of Functional Programming
A parallel SML compiler based on algorithmic skeletons
Journal of Functional Programming
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
The Haskell Refactorer, HaRe, and its API
Electronic Notes in Theoretical Computer Science (ENTCS)
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
A Refactoring Approach to Parallelism
IEEE Software
A monad for deterministic parallelism
Proceedings of the 4th ACM symposium on Haskell
Proceedings of the 4th ACM symposium on Haskell
A language-independent parallel refactoring framework
Proceedings of the Fifth Workshop on Refactoring Tools
Hi-index | 0.00 |
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).