Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
GUM: a portable parallel implementation of Haskell
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs
IEEE Transactions on Parallel and Distributed Systems
Parallel and Distributed Haskells
Journal of Functional Programming
Algorithm + strategy = parallelism
Journal of Functional Programming
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Runtime support for multicore Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
PASTHA: parallelizing stencil calculations in Haskell
Proceedings of the 5th ACM SIGPLAN workshop on Declarative aspects of multicore programming
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Scalable i/o event handling for GHC
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
What's the matter with Kansas Lava?
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
Harmony: collection and analysis of parallel block vectors
Proceedings of the 39th Annual International Symposium on Computer Architecture
Thread-Safe priority queues in haskell based on skiplists
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Seeing the futures: profiling shared-memory parallel racket
Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computing
Guiding parallel array fusion with indexed types
Proceedings of the 2012 Haskell Symposium
Causality of optimized Haskell: what is burning our cycles?
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Mio: a high-performance multicore io manager for GHC
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Multicore profiling for Erlang programs using percept2
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Hi-index | 0.00 |
Parallel Haskell programming has entered the mainstream with support now included in GHC for multiple parallel programming models, along with multicore execution support in the runtime. However, tuning programs for parallelism is still something of a black art. Without much in the way of feedback provided by the runtime system, it is a matter of trial and error combined with experience to achieve good parallel speedups. This paper describes an early prototype of a parallel profiling system for multicore programming with GHC. The system comprises three parts: fast event tracing in the runtime, a Haskell library for reading the resulting trace files, and a number of tools built on this library for presenting the information to the programmer. We focus on one tool in particular, a graphical timeline browser called ThreadScope. The paper illustrates the use of ThreadScope through a number of case studies, and describes some useful methodologies for parallelizing Haskell programs.