From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Fabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
Cc: Alain Frisch <alain@frisch.fr>, caml-list@inria.fr
Subject: Re: [Caml-list] Efficient OCaml multicore -- roadmap?
Date: Fri, 25 Mar 2011 13:07:55 +0100 [thread overview]
Message-ID: <1301054875.8429.298.camel@thinkpad> (raw)
In-Reply-To: <4D8C6D10.2020205@inria.fr>
> For the FFI, I think it is actually possible to keep some
> backward-compatibility, by allowing both a new kind of external C
> functions (taking a thread specific context as argument, and declared
> with the "reentrant" flag introduced by Sylvain) and the former kind
> (without the context). Each function of the runtime would come in both
> kinds, for example "caml_alloc_r" taking the context as extra argument,
> and "caml_alloc" without the context, the latter being a wrapper for
> the former, with a way to recover the context in the middle (either
> through TLS or thread specific). Most stub libraries would probably work
> without change, maybe with a little extra-cost (actually, I think TLS is
> costless, and thread specific is very efficient on Mac OS X where TLS
> does not exist).
AFAIK TLS is not costless but relatively cheap. There is an extra
indirection for each access (as if the variables were arrays indexed by
a thread ID). The thread ID is stored in otherwise unused registers that
are left-overs from the 16 bit times.
I guess there could be some performance impact on frequently accessed GC
variables (e.g. caml_young_limit).
> > One advantage of the approach you describe is that it would allow to use
> > native libraries that support multi-threading. Do you see other advantages?
>
> As I said before, the main one for me is the ability to setup everything
> in one process, you can for example create locks, shared segments and
> other synchronisation primitives in the main thread, before creating the
> other threads, which is a little more difficult with multi-processing.
I think the more interesting point is that you create/setup the
primitives after creating the threads, and this is very easy because of
the shared address space. There are POSIX calls for doing this in the
multi-process approach but the remaining problem is that one cannot
control the address space, especially that shared memory is mapped to
the same address in all processes.
Gerd
>
> Cheers,
> --
> Fabrice
>
--
------------------------------------------------------------
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
------------------------------------------------------------
next prev parent reply other threads:[~2011-03-25 12:08 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2054357367.219171.1300974318806.JavaMail.root@zmbs4.inria.fr>
2011-03-24 23:13 ` Fabrice Le Fessant
2011-03-25 0:23 ` [Caml-list] " Sylvain Le Gall
2011-03-25 9:55 ` [Caml-list] " Alain Frisch
2011-03-25 11:44 ` Gerd Stolpmann
[not found] ` <1396338209.232813.1301046980856.JavaMail.root@zmbs4.inria.fr>
2011-03-25 10:23 ` Fabrice Le Fessant
2011-03-25 12:07 ` Gerd Stolpmann [this message]
2011-04-16 12:12 ` Jon Harrop
2011-03-25 10:51 ` Hugo Ferreira
2011-03-25 12:25 ` Gerd Stolpmann
2011-03-25 12:58 ` Hugo Ferreira
[not found] ` <341494683.237537.1301057887481.JavaMail.root@zmbs4.inria.fr>
2011-03-25 13:10 ` Fabrice Le Fessant
2011-03-25 13:41 ` Dario Teixeira
2011-03-30 18:12 ` Jon Harrop
2011-03-25 15:44 ` Hugo Ferreira
2011-03-25 18:24 ` Martin Jambon
2011-03-25 19:19 ` Hugo Ferreira
2011-03-25 20:26 ` Gerd Stolpmann
2011-03-26 9:11 ` Hugo Ferreira
2011-03-26 10:31 ` Richard W.M. Jones
2011-03-30 16:56 ` Jon Harrop
2011-03-30 19:24 ` Richard W.M. Jones
2011-04-20 21:44 ` Jon Harrop
2011-04-19 9:57 ` Eray Ozkural
2011-04-19 10:05 ` Hugo Ferreira
2011-04-19 20:26 ` Gerd Stolpmann
2011-04-20 7:59 ` Hugo Ferreira
2011-04-20 12:30 ` Markus Mottl
2011-04-20 12:53 ` Hugo Ferreira
2011-04-20 13:22 ` Markus Mottl
2011-04-20 14:00 ` Edgar Friendly
2011-04-19 22:49 ` Jon Harrop
2011-03-30 17:02 ` Jon Harrop
2011-04-20 19:23 ` Jon Harrop
2011-04-20 20:05 ` Alexy Khrabrov
2011-04-20 23:00 ` Jon Harrop
[not found] ` <76544177.594058.1303341821437.JavaMail.root@zmbs4.inria.fr>
2011-04-21 7:48 ` Fabrice Le Fessant
2011-04-21 8:35 ` Hugo Ferreira
2011-04-23 17:32 ` Jon Harrop
2011-04-21 9:09 ` Alain Frisch
[not found] ` <799994864.610698.1303412613509.JavaMail.root@zmbs4.inria.fr>
2011-04-22 8:06 ` Fabrice Le Fessant
2011-04-22 9:11 ` Gerd Stolpmann
2011-04-23 10:17 ` Eray Ozkural
2011-04-23 13:47 ` Alexy Khrabrov
2011-04-23 17:39 ` Eray Ozkural
2011-04-23 20:18 ` Alexy Khrabrov
2011-04-23 21:18 ` Jon Harrop
2011-04-24 0:33 ` Eray Ozkural
2011-04-28 14:42 ` orbitz
2011-04-23 19:02 ` Jon Harrop
2011-04-22 9:44 ` Vincent Aravantinos
[not found] ` <20110421.210304.1267840107736400776.Christophe.Troestler+ocaml@umons.ac.be>
2011-04-21 19:53 ` Hezekiah M. Carty
2011-04-22 8:34 ` Alain Frisch
2011-04-21 10:09 ` Philippe Strauss
2011-04-23 17:44 ` Jon Harrop
2011-04-23 17:05 ` Jon Harrop
2011-04-20 20:30 ` Gerd Stolpmann
2011-04-20 23:33 ` Jon Harrop
2011-03-25 20:27 ` Philippe Strauss
2011-04-19 22:47 ` Jon Harrop
[not found] ` <869445701.579183.1303253283515.JavaMail.root@zmbs4.inria.fr>
2011-04-20 9:25 ` Fabrice Le Fessant
2011-03-25 18:45 ` Andrei Formiga
2011-03-30 17:00 ` Jon Harrop
2011-04-13 3:36 ` Lucas Dixon
2011-04-13 13:01 ` Gerd Stolpmann
2011-04-13 13:09 ` Lucas Dixon
2011-04-13 23:04 ` Goswin von Brederlow
2011-04-16 13:54 ` Jon Harrop
2011-03-24 13:44 Alexy Khrabrov
2011-03-24 14:57 ` Gerd Stolpmann
2011-03-24 15:03 ` Joel Reymont
2011-03-24 15:28 ` Guillaume Yziquel
2011-03-24 15:48 ` Gerd Stolpmann
2011-03-24 15:38 ` Gerd Stolpmann
2011-03-25 19:49 ` Richard W.M. Jones
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=1301054875.8429.298.camel@thinkpad \
--to=info@gerd-stolpmann.de \
--cc=Fabrice.Le_fessant@inria.fr \
--cc=alain@frisch.fr \
--cc=caml-list@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