Browse thread
SMP multithreading
[
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: | 2010-11-20 (20:57) |
From: | Goswin von Brederlow <goswin-v-b@w...> |
Subject: | Re: [Caml-list] SMP multithreading |
Jon Harrop <jonathandeanharrop@googlemail.com> writes: >> This is actually a quick way to use multiple cores with ocaml. Find a >> often called function that takes considerable time and offload it to C > > Or HLVM, F#, Scala, Clojure or any of the other languages that permit shared > memory parallelism. C is particularly poor in this regard so I would not > just restrict yourself to C... > > Cheers, > Jon. I'm not talking about any shared memory parallelism here. The parallelism is completly restricted to the ocaml side. You just find some single threaded job that takes long, rewrite it as external function and release the ocaml lock while it is running. For example in my code I compute the sha256 sum of a block of data. Since I use a C library for sha256 anyway the function is already external. All I had to do was switch the interface from using string to Bigarray and add enter/leave_blocking_section(). After that multiple threads can compute the sha256 sum for blocks of data in parallel and my code run 3.7 times faster with 4 cores. MfG Goswin