References for GHC usage of multiple capabilities

Hello devs, I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at the following three papers [1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96 [2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05 [3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09 Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues. The survey is meant to be of interest for systems folks. Therefore, I'm not paying so much attention to the programming model and how it is used in programs. -- Best wishes, Artem

Artem Pelenitsyn
Hello devs,
I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at the following three papers
[1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96
[2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05
[3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09
Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues.
Here are a few others but I may have missed a few: * Parallel Generational-Copying Garbage Collection with a Block-Structured Heap (Simon Marlow, Tim Harris, Roshan P. James, Simon Peyton Jones) In ISMM '08: Proceedings of the 7th international symposium on Memory management, Tucson, Arizona, ACM, June 2008 * Concurrent Haskell, Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. * Composable Memory Transactions, Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05) * Transactional Memory with Data Invariants, Tim Harris and Simon Peyton Jones. In TRANSACT '06 Cheers, - Ben

Thanks for heads up, Ben! This is useful stuff to take into account. I also
wonder how is this list (mine ++ yours) is relevant to what GHC actually
has these days. But maybe that's harder to answer quickly.
--
Best wishes,
Artem
On Thu, Dec 6, 2018 at 10:47 AM Ben Gamari
Artem Pelenitsyn
writes: Hello devs,
I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at the following three papers
[1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96
[2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05
[3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09
Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues.
Here are a few others but I may have missed a few:
* Parallel Generational-Copying Garbage Collection with a Block-Structured Heap (Simon Marlow, Tim Harris, Roshan P. James, Simon Peyton Jones) In ISMM '08: Proceedings of the 7th international symposium on Memory management, Tucson, Arizona, ACM, June 2008 * Concurrent Haskell, Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. * Composable Memory Transactions, Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05) * Transactional Memory with Data Invariants, Tim Harris and Simon Peyton Jones. In TRANSACT '06
Cheers,
- Ben _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

There's also "Mio: A High-Performance Multicore IO Manager for GHC"
http://haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf
On 12/7/18, Artem Pelenitsyn
Thanks for heads up, Ben! This is useful stuff to take into account. I also wonder how is this list (mine ++ yours) is relevant to what GHC actually has these days. But maybe that's harder to answer quickly.
-- Best wishes, Artem
On Thu, Dec 6, 2018 at 10:47 AM Ben Gamari
wrote: Artem Pelenitsyn
writes: Hello devs,
I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at the following three papers
[1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96
[2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05
[3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09
Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues.
Here are a few others but I may have missed a few:
* Parallel Generational-Copying Garbage Collection with a Block-Structured Heap (Simon Marlow, Tim Harris, Roshan P. James, Simon Peyton Jones) In ISMM '08: Proceedings of the 7th international symposium on Memory management, Tucson, Arizona, ACM, June 2008 * Concurrent Haskell, Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. * Composable Memory Transactions, Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05) * Transactional Memory with Data Invariants, Tim Harris and Simon Peyton Jones. In TRANSACT '06
Cheers,
- Ben _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Thanks, Tom! I didn't realize that this one was merged into GHC. I wonder
if the work presented on Haskell Symposium this year about a libuv-based
I/O manager (https://dl.acm.org/citation.cfm?id=3242759) will go somewhere…
--
Best, Artem
On Fri, 7 Dec 2018 at 12:00 Tom Murphy
There's also "Mio: A High-Performance Multicore IO Manager for GHC"
http://haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf
Thanks for heads up, Ben! This is useful stuff to take into account. I also wonder how is this list (mine ++ yours) is relevant to what GHC actually has these days. But maybe that's harder to answer quickly.
-- Best wishes, Artem
On Thu, Dec 6, 2018 at 10:47 AM Ben Gamari
wrote: Artem Pelenitsyn
writes: Hello devs,
I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at
On 12/7/18, Artem Pelenitsyn
wrote: the following three papers
[1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96
[2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05
[3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09
Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues.
Here are a few others but I may have missed a few:
* Parallel Generational-Copying Garbage Collection with a Block-Structured Heap (Simon Marlow, Tim Harris, Roshan P. James, Simon Peyton Jones) In ISMM '08: Proceedings of the 7th international symposium on Memory management, Tucson, Arizona, ACM, June 2008 * Concurrent Haskell, Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. * Composable Memory Transactions, Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05) * Transactional Memory with Data Invariants, Tim Harris and Simon Peyton Jones. In TRANSACT '06
Cheers,
- Ben _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Thank you all for the feedback again! I managed to make use of only basic
papers in time. The result is here:
github repo: https://github.com/ulysses4ever/CS7600-Survey-Paper
current PDF:
https://github.com/ulysses4ever/CS7600-Survey-Paper/releases/download/v1.0.0...
--
Best, Artem
On Fri, 7 Dec 2018 at 13:23 Artem Pelenitsyn
Thanks, Tom! I didn't realize that this one was merged into GHC. I wonder if the work presented on Haskell Symposium this year about a libuv-based I/O manager (https://dl.acm.org/citation.cfm?id=3242759) will go somewhere…
-- Best, Artem
On Fri, 7 Dec 2018 at 12:00 Tom Murphy
wrote: There's also "Mio: A High-Performance Multicore IO Manager for GHC"
http://haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf
Thanks for heads up, Ben! This is useful stuff to take into account. I also wonder how is this list (mine ++ yours) is relevant to what GHC actually has these days. But maybe that's harder to answer quickly.
-- Best wishes, Artem
On Thu, Dec 6, 2018 at 10:47 AM Ben Gamari
wrote: Artem Pelenitsyn
writes: Hello devs,
I've been working on a short survey devoted to a topic of multithreading inside the GHC compiler and runtime. So far I was mostly looking at
On 12/7/18, Artem Pelenitsyn
wrote: the following three papers
[1] P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. Gum: A portable parallel implementation of Haskell. PLDI ’96
[2] Tim Harris, Simon Marlow, and Simon Peyton Jones. Haskell on a shared-memory multiprocessor. Haskell ’05
[3] Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime support for multicore Haskell. ICFP ’09
Can you suggest any other papers adding insights on how GHC uses multiple capabilities for anything from GC to the implementation of Parallel/Concurrent Haskell? Perhaps, something more recent than the above, but preferably published in academic venues.
Here are a few others but I may have missed a few:
* Parallel Generational-Copying Garbage Collection with a Block-Structured Heap (Simon Marlow, Tim Harris, Roshan P. James, Simon Peyton Jones) In ISMM '08: Proceedings of the 7th international symposium on Memory management, Tucson, Arizona, ACM, June 2008 * Concurrent Haskell, Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. * Composable Memory Transactions, Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05) * Transactional Memory with Data Invariants, Tim Harris and Simon Peyton Jones. In TRANSACT '06
Cheers,
- Ben _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
participants (4)
-
Artem Pelenitsyn
-
Artem Pelenitsyn
-
Ben Gamari
-
Tom Murphy