[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