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: | -- (:) |
| From: | Philippe Wang <philippe.wang.lists@g...> |
| Subject: | Re: [Caml-list] OC4MC : OCaml for Multicore architectures |
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 ... wait 6) cd test 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) cheers, -- Philippe Wang mail@philippewang.info On Thu, Sep 24, 2009 at 2:05 AM, Jon Harrop <jon@ffconsultancy.com> wrote: > On Thursday 24 September 2009 00:15:14 you wrote: >> make program.nc uses original ocamlopt >> >> make program.th uses the newly built ocamlopt with the necessary >> options (lib links) >> >> then you can compare program.nc and program.th > > Aha! Progress, but now I get errors: > > $ make matmul.th > ../out/bin/ocamlopt -ccopt -march=native -ccopt -mtune=native -ccopt -O4 -I /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/ -I /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o -cclib -lgc -cclib -g -thread > unix.cmxa threads.cmxa graphics.cmxa -verbose -compact -rectypes -inline > 100 -fno-PIC -cclib -lunix -cclib -lpthread "matmul.ml" -o "matmul.th" > File "matmul.ml", line 25, characters 8-13: > Warning Y: unused variable count. > File "matmul.ml", line 26, characters 8-16: > Warning Y: unused variable last_col. > + as -o matmul.o /tmp/camlasm081590.s > + as -o /tmp/camlstartupdac3e2.o /tmp/camlstartup8f7152.s > + > gcc -o 'matmul.th' -I'/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/../out/lib/ocaml' -march=native -mtune=native -O4 '/tmp/camlstartupdac3e2.o' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/std_exit.o' 'matmul.o' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/graphics.a' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/../out/lib/ocaml/threads/threads.a' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/unix.a' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/stdlib.a' '-L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/' '-L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par' '-L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/../out/lib/ocaml/threads' '-L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/../out/lib/ocaml' '-lgraphics' '-lX11' '-lthreadsnat' '-lunix' '-lpthread' '-lunix' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o' '-lgc' '-g' '-lunix' '-lpthread' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasmrun.a' -lm -ldl > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasmrun.a(memory.o): > In function `gc_end_roots': > memory.c:(.text+0x10): multiple definition of `gc_end_roots' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c:948: > first defined here > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasmrun.a(memory.o): > In function `gc_begin_roots': > memory.c:(.text+0x12): multiple definition of `gc_begin_roots' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c:947: > first defined here > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasmrun.a(finalise.o): > In function `caml_final_do_strong_roots': > finalise.c:(.text+0x0): multiple definition of `caml_final_do_strong_roots' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c:301: > first defined here > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o: > In function `stop_the_world': > gci.c:(.text+0x38e): undefined reference to `caml_all_threads' > gci.c:(.text+0x403): undefined reference to `caml_all_threads' > gci.c:(.text+0x410): undefined reference to `caml_all_threads' > gci.c:(.text+0x48a): undefined reference to `caml_all_threads' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o: > In function `resume_the_world': > gci.c:(.text+0x4c4): undefined reference to `caml_all_threads' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o:gci.c: > (.text+0x57c): more undefined references to `caml_all_threads' follow > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o: > In function `termination_action': > gci.c:(.text+0x1e94): undefined reference to `remove_thread_from_list' > /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/gci.o: > In function `gc_terminate_local': > gci.c:(.text+0x1fe5): undefined reference to `remove_thread_from_list' > collect2: ld returned 1 exit status > Error during linking > make: *** [matmul.th] Error 2 > > -- > Dr Jon Harrop, Flying Frog Consultancy Ltd. > http://www.ffconsultancy.com/?e >