Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Looking for information regarding use of OCaml in scientific computing and simulation
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2009-12-22 (13:40)
From: Gerd Stolpmann <gerd@g...>
Subject: Re: [Caml-list] Looking for information regarding use of OCaml in scientific computing and simulation
> Have you ever tried writing a significant or complex algo using
> message passing?  Its fun if you have nothing better to to --
> its a good intellectual challenge.  You can even learn some
> interesting computer science while you do it.
> However, if you are  interested in merely using the system
> to do your "real" work, then writing message-passing code
> is an utter waste of time -- its difficult, time-consuming, error
> prone, hard to balance and optimize & tune, works well only
> for "embarrasingly parallel" code, etc.  Even the evil
> slow-down of NUMA is often better than trying to
> performance-tune a message-passing system.

Well, it is true that message passing is more expensive, and you need
bigger data sets until it is worth it (nonsense to do a 10x10 matrix
multiplication with message passing). However, I don't think it is that
complicated as you describe. Especially ocaml's uniform representation
of values can help a lot, and hide many of the low-level details. It
could be a lot like continuation-passing style.

Hard to balance and optimize & tune: This is true for _any_
parallelization strategy.

> Let me put it this way: suggesting that programmers can
> write their own message-passing system is kind of like
> telling them that they can write their own garbage-collection
> system, or design their own closures, or they can go
> create their own type system. Of course they can ... and
> if they wanted to do that, they would be programming in
> C or assembly, and would probably be designing new
> languages.  Cause by the time you get done with message
> passing, you've created a significant and rich programming
> system that resembles a poorly-designed language... been
> there, done that.

See it this way: The typical ocaml programmer doesn't like system
programming, and will seldom/never touch C or assembly. The task it to
help this kind of programmer, and to make parallel programming available
in a higher-level way than it is available elsewhere. 

Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany
Phone: +49-6151-153855                  Fax: +49-6151-997714