I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
An operational semantics for parallel lazy evaluation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Readings in hardware/software co-design
A poor man's concurrency monad
Journal of Functional Programming
Algorithm + strategy = parallelism
Journal of Functional Programming
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Manticore: a heterogeneous parallel language
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Scripting the cloud with skywriting
HotCloud'10 Proceedings of the 2nd USENIX conference on Hot topics in cloud computing
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Comparing the usability of library vs. language approaches to task parallelism
Evaluation and Usability of Programming Languages and Tools
Extending monads with pattern matching
Proceedings of the 4th ACM symposium on Haskell
ParaForming: forming parallel haskell programs using novel refactoring techniques
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
Extending little languages into big systems
CEFP'11 Proceedings of the 4th Summer School conference on Central European Functional Programming School
Financial software on GPUs: between Haskell and Fortran
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
Generic monadic constructs for embedded languages
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Reliable scalable symbolic computation: the design of SymGridPar2
Proceedings of the 28th Annual ACM Symposium on Applied Computing
LVars: lattice-based data structures for deterministic parallelism
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Towards a functional run-time for dense NLA domain
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Embrace, defend, extend: a methodology for embedding preexisting DSLs
Proceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages
MBrace: cloud computing with monads
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Freeze after writing: quasi-deterministic parallel programming with LVars
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
We present a new programming model for deterministic parallel computation in a pure functional language. The model is monadic and has explicit granularity, but allows dynamic construction of dataflow networks that are scheduled at runtime, while remaining deterministic and pure. The implementation is based on monadic concurrency, which has until now only been used to simulate concurrency in functional languages, rather than to provide parallelism. We present the API with its semantics, and argue that parallel execution is deterministic. Furthermore, we present a complete work-stealing scheduler implemented as a Haskell library, and we show that it performs at least as well as the existing parallel programming models in Haskell.