[Haskell-cafe] Google Summer of Code: a NUMA wishlist!

Sajith T S sajith at gmail.com
Mon Mar 26 04:49:53 CEST 2012


Dear Cafe,

It's last minute-ish to bring this up (in my part of the world it's
still March 25), but graduate students are famously a busy and lazy
lot. :)  I study at Indiana University Bloomington, and I wish to
propose^W rush in this proposal and solicit feedback, mentors, etc
while I can.

Since student application deadline is April 6, I figure we can beat
this into a real proposal's shape by then.  This probably also falls
on the naive and ambitious side of things, and I might not even know
what I'm talking about, but let's see!  That's the idea of proposal,
yes?

Broadly, idea is to improve support for NUMA systems.  Specifically:

 -- Real physical processor affinity with forkOn [1].  Can we fire all
    CPUs if we want to?  (Currently, the number passed to forkOn is
    interpreted as number modulo the value returned by
    getNumCapabilities [2]).

 -- Also kind of associated with the above: when launching processes,
    we might want to specify a list of CPUs rather than the number of
    CPUs.  Say, a -N [0,1,3] flag rather than -N 3 flag.  This shall
    enable us to gawk at real pretty htop [3] output.
 
 -- From a very recent discussion on parallel-haskell [4], we learn
    that RTS' NUMA support could be improved.  The hypothesis is that
    allocating nurseries per Capability might be a better plan than
    using global pool.  We might borrow/steal ideas from hwloc [5] for
    this.

 -- Finally, a logging/monitoring infrastructure to verify assumptions
    and determine if/how local work stays.

(I would like to acknowledge my fellow conspirators and leave them
unnamed, lest they shall be embarrassed by my... naivete.)

Thanks,
Sajith.

[1] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html#v:forkOn
[2] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html#v:getNumCapabilities
[3] http://htop.sourceforge.net/
[4] http://groups.google.com/group/parallel-haskell/browse_thread/thread/7ec1ebc73dde8bbd
[5] http://www.open-mpi.org/projects/hwloc/

-- 
"the lyf so short, the craft so long to lerne."
                 -- Chaucer.




More information about the Haskell-Cafe mailing list