Browse thread
[Caml-list] Why systhreads?
-
Lauri Alanko
-
Sven Luther
-
Chris Hecker
- Basile STARYNKEVITCH
-
Chris Hecker
- Vitaly Lugovsky
- Christopher Quinn
- Xavier Leroy
-
Sven Luther
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Basile STARYNKEVITCH <basile@s...> |
| Subject: | Re: [Caml-list] Why systhreads? |
>>>>> "Chris" == Chris Hecker <checker@d6.com> writes:
Chris> On a related note, now that the first CPUs with
Chris> HyperThreading are shipping, is there any plan to
Chris> multithread the GC so caml programs can take advantage of
Chris> HT? I can understand why it was not a high priority to
Chris> support real threads for multiprocessor machines when that
Chris> was the only way to get parallelism with threads, but once
Chris> HT is ubiquitous, it has the potential to make it worth the
Chris> trouble to thread a regular application to increase
Chris> performance. I don't think this is a high priority now,
Chris> because there's 0% penetration of HT right now, but
Chris> hopefully there's some plan for the future.
I would suppose that HyperThreading chips can already successfully
being used on Linux (I was told, IIRC, that such chips gives 2 cpu
when asked thru /proc/cpuinfo). So, I would suppose that they can take
advantage of native threads on Ocaml already.
Chris> I guess the question is, is a multithreaded GC an open
Chris> research problem, or is there a known good solution and it
Chris> just hasn't gotten to the top of the priority list yet?
I have a question to the Ocaml team : Could they explain what is the
current (and perhaps near future) status of multithreading in Ocaml,
notably with respect to garbage collection?
I thought that the current GC in Ocaml (3.06) is already
multithread-capable, at least because each thread has his own birth
region and can do minor garbage collections independently of other
threads, so threads have to synchronize only on major (ie full)
garbage collections. Is my assumption correct? I just had a glance
into ocaml/byterun/minor_gc.c and did not found any thread-local
variables there... Also, ocaml/otherlibs/systhreads/posix.c mentions
/* The global mutex used to ensure that at most one thread is running
Caml code */
What is (with ocamlopt -thread on x86/linux) the use of multithreading
in Ocaml? I really thought that it was really (in practical terms)
biprocessor support, not only some limited kind of (throwable once
only) continuations?
Regards.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
alias: basile<at>tunes<dot>org
8, rue de la Faïencerie, 92340 Bourg La Reine, France
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners