References for GHC usage of multiple capabilities

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

References for GHC usage of multiple capabilities

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.

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

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: References for GHC usage of multiple capabilities

Ben Gamari-2
Artem Pelenitsyn <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

signature.asc (497 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: References for GHC usage of multiple capabilities

Artem Pelenitsyn-2
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 <[hidden email]> wrote:
Artem Pelenitsyn <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: References for GHC usage of multiple capabilities

amindfv
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 <[hidden email]> wrote:

> 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 <[hidden email]> wrote:
>
>> Artem Pelenitsyn <[hidden email]> 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
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: References for GHC usage of multiple capabilities

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 <[hidden email]> 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

On 12/7/18, Artem Pelenitsyn <[hidden email]> wrote:
> 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 <[hidden email]> wrote:
>
>> Artem Pelenitsyn <[hidden email]> 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
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: References for GHC usage of multiple capabilities

Artem Pelenitsyn
Thank you all for the feedback again! I managed to make use of only basic papers in time. The result is here:


--
Best, Artem


On Fri, 7 Dec 2018 at 13:23 Artem Pelenitsyn <[hidden email]> wrote:
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 <[hidden email]> 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

On 12/7/18, Artem Pelenitsyn <[hidden email]> wrote:
> 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 <[hidden email]> wrote:
>
>> Artem Pelenitsyn <[hidden email]> 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
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs