Frequently Asked Questions & Known Bugs

What are the supported platforms ?
  • Currently, we only support Linux x86-64bit architecture. We have not recently tested on Mac OS X Intel-64bit architecture, but it will probably not work. For instance, the last stable version of Debian (or Ubuntu) Linux x86-64bit should be fine.
My program crashes with segmentation fault
  • Are you using unsupported functions ? Some functions are not yet available, they should not be used. See download page.
  • Else, please send us a bug report.
My program enters an endless loop
  • Check if your program contains non-allocating threads, if it does, those may prevent other threads to run when a memory needs to be collected.
  • The heap (where memory is allocated) may not be big enough. See the README file to know how to parameterize the heap size.
Why are some functions, like ''Thread.kill'' missing ?
  • Thread.kill is not available in INRIA's official OCaml distribution with ocamlopt (Thread.kill only works with VM threads of ocamlc/ocamlrun).
Why doesn't my program run faster with your runtime library ?
  • How many threads do you run in parallel ? Do you have a lot of memory access ? Parallel threads reduce the per-thread memory bandwidth, you can try to make fewer parallel memory access.
  • How much is your program allocating ? If a lot, our GC is not as performant as INRIA's.
My program reaches a dead-lock, I do not understand why.
  • If your program reaches a dead-lock while it really doesn't with official version, please send a bug report.
What gain of performance can I expect ?
  • With n CPU-cores, you can expect a speed-up factor of n if the memory accesses do not kill your program performances. Sometimes you can have an even greater speed-up if you manage to reduce thread-context-switches or page faults.
  • With intensive memory-access, the speed-up given by the numerous cores will be dropped by the high cost of parallel or concurrent memory accesses.
What about the mutex cost ?
  • If you can write your program without mutexes, then you should do it. Mutexes are a very high cost mechanism, which can sometimes become neglectful.
What is the purpose of parallel threads ?
  • Take advantage of the growing number of CPU-cores available in our PCs.
  • Run computation faster.
 
faq_and_known_bugs.txt · Last modified: 2009/07/03 19:45 by philippe