Browse thread
OC4MC : OCaml for Multicore architectures
- Philippe Wang
[
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: | 2009-09-24 (01:36) |
From: | Jon Harrop <jon@f...> |
Subject: | Re: [Caml-list] OC4MC : OCaml for Multicore architectures |
On Thursday 24 September 2009 01:01:58 you wrote: > Ok... well, I guess that > - whether it is something about your environment that is too different > from ours (in which case build.sh is bad), > - whether you have corrupted your installation (it could be by having > a bad PATH value that makes original ocamlopt be mixed up with oc4mc > ocamlopt) > > What I suggest is to use a default PATH (without modifying it for the > purpose of OC4MC), and do these steps in a clean directory that is not > included in PATH : > > 1) wget oc4mc-2009XXXX.tgz > 2) tar xzf oc4mc-2009XXXX.tgz > 3) cd oc4mc-2009XXXX > 4) wget ocaml 3.10.2 (tar.gz or tar.bz2) > 5) bash build.sh > 6) cd tests > 7) make matmul.th > 8) time ./matmul.th 1000 8 > > Sorry it's messy, we are thinking about something cleaner... (there's > a matter of lack of time somewhere) No problem. I'll be happy to get anything working! Following your advice, it seems to work perfectly now: $ ./matmul.th 500 1 Temp de calcul: utime 2.324145, stime 0.020001, rtime 2.325608 $ ./matmul.th 500 2 Temp de calcul: utime 1.780111, stime 0.000000, rtime 0.890797 $ ./matmul.th 500 3 Temp de calcul: utime 1.784111, stime 0.004000, rtime 0.608895 $ ./matmul.th 500 4 Temp de calcul: utime 1.764110, stime 0.004000, rtime 0.451214 $ ./matmul.th 500 5 Temp de calcul: utime 1.768111, stime 0.000000, rtime 0.393285 $ ./matmul.th 500 6 Temp de calcul: utime 1.924120, stime 0.004001, rtime 0.333215 $ ./matmul.th 500 7 Temp de calcul: utime 1.788112, stime 0.000000, rtime 0.302328 $ ./matmul.th 500 8 Temp de calcul: utime 1.992124, stime 0.000000, rtime 0.290383 Wow! 2.6x faster on 2 cores is good. ;-) That's a really fantastic piece of work. I'll do my best to study it and write literature about it. May I ask, can you give a rough overview of the design? For example, is there a separate nursery per thread so each thread can allocate a certain amount before incurring a global pause? Do you have any ideas for libraries built on top of this, such as a task parallel library using work-stealing deques? Thanks very much!!! -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e