[dmd-concurrency] blip parallelization
Fawzi Mohamed
fawzi at gmx.ch
Tue Jan 12 13:42:12 PST 2010
I tried to stay out of the discussion, because I am too busy, but
concurrency is a topic that really interest me so I decided to write a
document explaining the parallelization concepts behind blip.
Blip is a library that I am developing, I still haven't really
announced it, because I don't think it is really ready for prime time
(inching toward v 0.5: useful for other programmers that want to
thinker with it), but I already talked about it a couple of times when
some relevant topic came up.
For the parallelization I think that it is important to have good
stable primitives, new languages features are not really necessary, so
I worked mainly with D 1.0 and tango, but I did try to write portable
code, the whole output is mostly independent of tango, as it is based
on a sink (void delegate(char[])), in D 2.0 it should be
delegate(const char[]), and probably several other things, but I tried
to be portable. The thing that I missed most in D 1.0 are real closures.
I just (finally!) switched to a scheduler that takes advantage of numa
information (after some not so good experiments with a more
hierarchical approach), it seems to work but I am pretty sure that
there are still bugs around.
Anyway I have quite clear ideas about what I want as parallelization
framework, and it is rather different from the what was presented, so
I think that it could be interesting to present the ideas behind it.
http://github.com/fawzi/blip/blob/master/ParallelizationConcepts.txt
ciao
Fawzi
More information about the dmd-concurrency
mailing list