A customizable substrate for concurrent languages
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A concurrent, generational garbage collector for a multithreaded implementation of ML
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implementation of a portable nested data-parallel language
Journal of Parallel and Distributed Computing - Special issue on data parallel algorithms and programming
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
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
Thread scheduling for multiprogrammed multiprocessors
Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures
Implicit parallel programming in pH
Implicit parallel programming in pH
The nofib Benchmark Suite of Haskell Programs
Proceedings of the 1992 Glasgow Workshop on Functional Programming
The Sisal Model of Functional Programming and its Implementation
PAS '97 Proceedings of the 2nd AIZU International Symposium on Parallel Algorithms / Architecture Synthesis
Comparing Parallel Functional Languages: Programming and Performance
Higher-Order and Symbolic Computation
Parallel and Distributed Haskells
Journal of Functional Programming
Algorithm + strategy = parallelism
Journal of Functional Programming
Extending the Haskell foreign function interface with concurrency
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Proceedings of the 4th international symposium on Memory management
Parallel functional programming in Eden
Journal of Functional Programming
Dynamic circular work-stealing deque
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Haskell on a shared-memory multiprocessor
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Parallel garbage collection for shared memory multiprocessors
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Feedback directed implicit parallelism
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Lightweight concurrency primitives for GHC
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Parallel generational-copying garbage collection with a block-structured heap
Proceedings of the 7th international symposium on Memory management
Implicitly-threaded parallelism in Manticore
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A scheduling framework for general-purpose parallel languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Space profiling for parallel functional programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Parallel performance tuning for Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
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
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Garbage collection for multicore NUMA machines
Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
Multicore garbage collection with local heaps
Proceedings of the international symposium on Memory management
A parallel skeleton for genetic algorithms
IWANN'11 Proceedings of the 11th international conference on Artificial neural networks conference on Advances in computational intelligence - Volume Part II
Prettier concurrency: purely functional concurrent revisions
Proceedings of the 4th ACM symposium on Haskell
Proceedings of the fifth international workshop on High-level parallel programming and applications
An efficient non-moving garbage collector for functional languages
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Places: adding message-passing parallelism to racket
Proceedings of the 7th symposium on Dynamic languages
Controlling loops in parallel mercury code
DAMP '12 Proceedings of the 7th workshop on Declarative aspects and applications of multicore programming
Parallel computation skeletons with premature termination property
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
Functional high performance financial IT: the hiperfit research center in copenhagen
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Thread-Safe priority queues in haskell based on skiplists
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Eden --- parallel functional programming with haskell
CEFP'11 Proceedings of the 4th Summer School conference on Central European Functional Programming School
Parallel and concurrent programming in Haskell
CEFP'11 Proceedings of the 4th Summer School conference on Central European Functional Programming School
Haskell vs. f# vs. scala: a high-level language features and parallelism support comparison
Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computing
A meta-scheduler for the par-monad: composable scheduling for the heterogeneous cloud
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Implementing a high-level distributed-memory parallel haskell in haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Challenges for a trace-based just-in-time compiler for haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Maple: simplifying SDN programming using algorithmic policies
Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM
Towards a functional run-time for dense NLA domain
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Mio: a high-performance multicore io manager for GHC
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Embrace, defend, extend: a methodology for embedding preexisting DSLs
Proceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages
Shared-memory multiprocessing for interactive theorem proving
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Energy-efficient work-stealing language runtimes
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Programming a Multicore Architecture without Coherency and Atomic Operations
Proceedings of Programming Models and Applications on Multicores and Manycores
Hi-index | 0.00 |
Purely functional programs should run well on parallel hardware because of the absence of side effects, but it has proved hard to realise this potential in practice. Plenty of papers describe promising ideas, but vastly fewer describe real implementations with good wall-clock performance. We describe just such an implementation, and quantitatively explore some of the complex design tradeoffs that make such implementations hard to build. Our measurements are necessarily detailed and specific, but they are reproducible, and we believe that they offer some general insights.