Copyright:
Attribution Non-commercial
http://www.galois.com/...
PDF: http://www.galois.com/....
(More)
http://www.galois.com/...
PDF: http://www.galois.com/...
The Glasgow Haskell Compiler supports extraordinarily cheap threads. These are implemented using a two-level model, with threads scheduled across a set of OS-level threads. Since the lightweight threads can't afford to block when performing I/O operations, when a Haskell program starts, it runs an I/O manager thread whose job is to notify other threads when they can safely perform I/O.
The I/O manager manages its file descriptors using the select system call. While select performs well for a small number of file descriptors, it doesn't scale to a large number of concurrent clients, making GHC less attractive for use in large-scale server development.
This talk will describe a new, more scalable I/O manager that's currently under development and that hopefully will replace the current I/O manager in a future release of GHC.
(Less)
Add a Comment