[sajith at gmail.com: Google Summer of Code: a NUMA wishlist!]

Sajith T S sajith at gmail.com
Mon Mar 26 05:25:19 CEST 2012


Greetings,

I originally posted this message to haskell-cafe, and was told that
this list might be a more appropriate place to seek feedback.  I'm
curious to know what people think of this proposal.

Thanks in advance!

Regards,
Sajith.

----- Forwarded message from Sajith T S <sajith at gmail.com> -----

Date: Sun, 25 Mar 2012 22:49:52 -0400
From: Sajith T S <sajith at gmail.com>
To: The Haskell Cafe <haskell-cafe at haskell.org>
Subject: Google Summer of Code: a NUMA wishlist!

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.


----- End forwarded message -----

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




More information about the Glasgow-haskell-users mailing list