When I'm implementing a parallel/dist algorithm I take care of making the 
communication code abstract enough to be re-used. Since abstraction in C 
derivative languages (function pointers, templates etc) are a joke; one need 
not bother with this as expected future code re-use isn't much.

On the other hand in ocaml we have the best module system which can be used to 
create advanced parallel data structures and algorithms. A shared mem queue 
would be among the most trivial of such constructs. If we think of world 
domination we have to see the whole picture. Parallel programming is considered 
difficult because common  programmers don't understand enough algebra to see 
that most problems could be solved by substituting an operator in a generic 
parallel algorithm template. Or that optimal algorithms could be re-used 
combinatorially (consider the relation of a mesh topology to a linear topology 
with s/f routing)

The fact is that an efficient parallel algorithm need not be long (theory 
suggests that fastest is shortest). It is our collective lack of creativity 
that usually makes it long.

Cheers,

Eray

Ps: parallelism is not tangential here. I believe it is unnecessary to 
implement asynchronous processes just for the sake of handling overlapping I/O 
and computation. That's like parallelism for high school programming class.
_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to