[Haskell-cafe] Google Summer of Code - Lock-free data structures

Florian Hartwig florian.j.hartwig at gmail.com
Mon Mar 19 01:37:02 CET 2012


Hi everyone,
I would like to do the GSoC project outlined in
http://hackage.haskell.org/trac/summer-of-code/ticket/1608

One of Haskell's great strengths is its support for all kinds of concurrent
and parallel programmming, so I think that the Haskell ecosystem would
benefit from having a wider range of efficient concurrent data structures.
Also, more selfishly, I remember reading the article in CACM last summer and
thinking that the whole idea of updating data structures directly using
atomic compare-and-swap was really cool, so I would love to have an excuse
to play around with it.

Some (initial) ideas for lock-free data structures worth implementing:
1. A lock-free priority queue, e.g. using the approach based on skip-lists
explained in [2]
2. Stacks, see [1] and [3]
3. Hash tables [4]
but if anyone has other suggestions, I would obviously happy to hear them.

GSoC stretches over 13 weeks. I would estimate that implementing a data
structure, writing tests, benchmarks, documentation etc. should not take more
than 3 weeks (it is supposed to be full-time work, after all), which means
that I could implement 4 of them in the time available and still have some
slack.

About me: My name is Florian Hartwig, I'm a fifth year (Master's) student in
Computing Science at the University of Glasgow. I've been using Haskell for a
bit more than two years now (both for university courses and my recreational
programming) and I'm currently using it for my Master's project, so I won't
have to spend any time learning the Haskell basics.
I don't have any other plans for the summer that might conflict with the
project.

I'd be thankful for any thoughts, questions and suggestions.
Cheers,
Florian

[1] http://cacm.acm.org/magazines/2011/3/105308-data-structures-in-the-multicore-age/fulltext
[2] http://www.sciencedirect.com/science/article/pii/S0743731504002333
[3] http://dl.acm.org/citation.cfm?id=1007944
[4] http://dl.acm.org/citation.cfm?id=564881



More information about the Haskell-Cafe mailing list