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.