From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id EE7EABBAF for ; Tue, 22 Dec 2009 14:40:44 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmMCANJaMEvU4xEJkGdsb2JhbACBSploAQEBAQkJDAcTA7l1AoQxBA X-IronPort-AV: E=Sophos;i="4.47,436,1257116400"; d="scan'208";a="39179980" Received: from moutng.kundenserver.de ([212.227.17.9]) by mail2-smtp-roc.national.inria.fr with ESMTP; 22 Dec 2009 14:40:44 +0100 Received: from office1.lan.sumadev.de (dslb-084-059-066-249.pools.arcor-ip.net [84.59.66.249]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0LfGuG-1NlBSN1MQS-00oio7; Tue, 22 Dec 2009 14:40:43 +0100 Received: from [192.168.5.104] (dslb-084-059-066-249.pools.arcor-ip.net [84.59.66.249]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id 1C6EBC0E8E; Tue, 22 Dec 2009 14:40:43 +0100 (CET) Subject: Re: [Caml-list] Looking for information regarding use of OCaml in scientific computing and simulation From: Gerd Stolpmann To: linasvepstas@gmail.com Cc: Lukasz Stafiniak , caml-list In-Reply-To: <3ae3aa420912212040i23309f7cw4485db33352c1853@mail.gmail.com> References: <3d13dcfc0911250305i43a684e4u5a96ec420b6ce350@mail.gmail.com> <200911292311.29580.jon@ffconsultancy.com> <4a708d20911291416x2be905f7p93f559543a77d97f@mail.gmail.com> <3ae3aa420911300830h63a04b21r2e09fb4e34cdb7f7@mail.gmail.com> <4a708d20912200638q5e7d72acu9cae3b564ada085d@mail.gmail.com> <3ae3aa420912212040i23309f7cw4485db33352c1853@mail.gmail.com> Content-Type: text/plain Date: Tue, 22 Dec 2009 14:46:25 +0100 Message-Id: <1261489585.31160.22.camel@flake.lan.gerd-stolpmann.de> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit X-Provags-ID: V01U2FsdGVkX1+FhqVtrnEDHrPJm8+zxIjjgawOw1Kv9FpSG4a dUAkBD9NtmSAMyKqnpQ/bJCqL2HPhFSQpIqTVGMmI4GJ0jCapY IlPYTT//UcnZMK5TYy+VA== X-Spam: no; 0.00; ocaml:01 gerd:01 stolpmann:01 gerd:01 ocaml's:01 low-level:01 ocaml:01 higher-level:01 stolpmann:01 darmstadt:01 6151:01 6151:01 closures:01 caml-list:01 data:02 > 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 -- ------------------------------------------------------------ Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ------------------------------------------------------------