====== 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 [[contact|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 [[contact|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.