caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Benjamin Canou <benjamin.canou@gmail.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] OC4MC : OCaml for Multicore architectures
Date: Sat, 26 Sep 2009 01:26:50 +0200	[thread overview]
Message-ID: <4ABD51BA.4010008@gmail.com> (raw)
In-Reply-To: <4ABCDC24.2040806@inria.fr>

  Hi everyone,

And let's have a little prayer for Philippe who is now in bed, suffering 
from its head and hands because of his teammates letting him answer all 
the mail.
Just (half) kidding.

So,

Xavier Leroy a wrote (and probably described the work quite well) :
> what they did is an amazing hack [1]
> indeed --, but you need to keep in mind the difference between a
> proof-of-concept experiment and a product. 
By reading some messages in this thread I think we need to clarify again 
the context and goals of OC4MC.

One of our main goals for OC4MC is to serve as a parallel and shared 
memory low-level concurrency implementation, on top of which higher 
level research concurrency libraries and language extensions can be 
built. And as most of us agree, multicores, and soon manycores, are hard 
to program, in particular because of the memory bandwidth. So there 
probably are experiments to be done to help this at the language level, 
now that we have this parallel runtime. Moreover, and to answer a 
question that appeared in this thread, we provide our simple GC, but we 
separated the GC algorithm from the runtime, so OC4MC is also a 
low-level playground to experiment with your own GCs and choose the one 
you want to use at linking.

To sum up, let's see OC4MC as an experimentation platform that leverages 
some restrictions of OCaml, but of course neither as a drop-in 
replacement for the official distribution nor as the future of OCaml. We 
do not claim that the ideal solution to bring shared memory parallelism 
to OCaml is, as OC4MC does, only to replace the runtime (and that INRIA 
can just replace the official runtime by our hacked one).  However, from 
a pragmatic (and optimistic) point of view, the modifications to the 
compiler have been kept very lightweight, yet sufficient to break binary 
compatibility. So if the excitement continues around OC4MC as in this 
thread, maybe these modifications could be integrated into the 
distribution since they really do not touch the core of the compiler and 
cannot cause a lot of maintenance overhead.

I will add that we did not made this experiment to beat F# or python's 
hashtables, so I will not comment on that here. The point about 
performance is that it should be *predictable*.  We now have rewritten 
and debugged most of the memory related behaviors present in the 
original runtime in a more generic (and OC4MC friendly) way to achieve 
this, and if it's not the case for some particular cases, we'll be glad 
to (try to) fix these bugs.

On the maintenance side, as Philippe said, we already have some half 
working version with ocaml 3.11.x, but partly because of the changes 
made to the native runtime in this release and partly because of [1], 
porting the patch is not trivial.

Cheers and have fun experimenting with OC4MC (so it will compensate the 
amount of debugging we spent on it ;-) ).
  Benjamin.


  reply	other threads:[~2009-09-25 23:26 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-22 21:30 Philippe Wang
2009-09-23 10:53 ` [Caml-list] " Goswin von Brederlow
2009-09-23 12:21   ` Jon Harrop
2009-09-23 13:00     ` Jon Harrop
2009-09-23 14:26       ` Philippe Wang
2009-09-24  0:21   ` Jon Harrop
2009-09-23 23:15     ` Philippe Wang
2009-09-24  0:05       ` Jon Harrop
2009-09-24  0:01         ` Philippe Wang
2009-09-24  1:47           ` Jon Harrop
2009-09-24  9:49             ` Richard Jones
2009-09-24 10:00               ` rixed
2009-09-24 10:40               ` Florian Hars
2009-09-24 11:45               ` Jon Harrop
2009-09-24 10:00             ` kcheung
2009-09-24 11:52               ` Jon Harrop
2009-09-24 11:55                 ` Rakotomandimby Mihamina
2009-09-24 12:11                 ` rixed
2009-09-24 15:58                   ` Jon Harrop
2009-09-24 12:39                 ` Stefano Zacchiroli
2009-09-24 13:09                   ` Jon Harrop
2009-09-24 16:49                     ` Richard Jones
2009-09-24 16:56                       ` Philippe Wang
2009-09-24 17:36                         ` Richard Jones
2009-09-24 19:39                         ` rixed
2009-09-24 21:09                       ` Jon Harrop
2009-09-24 21:26                         ` rixed
2009-09-25  4:07                         ` Jacques Garrigue
2009-09-25  7:32                           ` Hugo Ferreira
2009-09-25 10:17                             ` Jon Harrop
2009-09-25 13:04                               ` kcheung
2009-09-25 21:39                             ` Gerd Stolpmann
2009-09-25  9:33                           ` Philippe Wang
2009-09-25 21:39                           ` Jon Harrop
2009-09-26 16:55                             ` Jon Harrop
2009-09-25  8:08                         ` Stéphane Glondu
2009-09-25 15:05                     ` Xavier Leroy
2009-09-25 23:26                       ` Benjamin Canou [this message]
2009-09-26  0:45                         ` kcheung
2009-09-26  1:53                           ` Jon Harrop
2009-09-26 13:51                             ` kcheung
2009-09-26 14:46                               ` Jon Harrop
2009-10-10  4:01                         ` Jon Harrop
2009-09-24 13:40                   ` Rakotomandimby Mihamina
2009-09-24 14:22                     ` Philippe Wang
2009-09-24 14:49                     ` Stefano Zacchiroli
2009-09-24 13:55                   ` Mike Lin
2009-09-24 14:52                     ` Stefano Zacchiroli
2009-09-24 15:36                 ` Philippe Wang
2009-09-24 15:50                   ` Jon Harrop
2009-09-24 12:14             ` Philippe Wang
2009-09-24 13:11               ` Jon Harrop
2009-09-24 14:51                 ` Philippe Wang
2009-09-24 14:57       ` Philippe Wang
2009-09-24 14:11 ` Dario Teixeira
2009-09-24 14:38   ` Philippe Wang
2009-09-24 15:20     ` Dario Teixeira
2009-09-24 23:28     ` Jon Harrop
2009-09-24 23:25       ` Philippe Wang
2009-09-25 14:11       ` Philippe Wang
2009-11-08 18:12       ` Jon Harrop
2009-09-24 18:24 ` David Teller
     [not found] <20090924154716.BCD0ABC5A@yquem.inria.fr>
2009-09-24 16:02 ` Pascal Cuoq
2009-09-24 16:30   ` Philippe Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ABD51BA.4010008@gmail.com \
    --to=benjamin.canou@gmail.com \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).