Hello everyone,
Does anyone know the exact difference between the single-threaded and multi-threaded version of LibbulletJME? Are both versions thread-safe? Which versions do the different Minie releases use?
Thanks and kind regards
Nico
Hello everyone,
Does anyone know the exact difference between the single-threaded and multi-threaded version of LibbulletJME? Are both versions thread-safe? Which versions do the different Minie releases use?
Thanks and kind regards
Nico
The “Mt” versions of Libbulletjme use lightweight worker threads (created using OpenMP) to parallelize certain loops involved in stepping a PhysicsSpace
. For applications with a single PhysicsSpace
, I believe they are thread-safe.
The “Mt” option is intended to boost performance on multi-threaded CPUs. For the workload I tested, the performance gains were moderate, and they topped out at 2 threads, perhaps due to limited memory bandwidth. (It didn’t help that significant portions of the Bullet algorithm are inherently serial.) Due to incompatibility between Xcode and OpenMP, I haven’t got “Mt” working for MacOS.
The only Minie releases that include multithreaded Libbulletjme are the ones with the “+mt” in their names, starting with “Minie-4.3.0+mt”.
More details can be found in the original Forum topic.
@sgold - As always, a quick and helpful response. Thank you very much! I will look into the additional information and come back if I have any further questions.