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