[Libbulletjme] Difference single-threaded vs. multi-threaded

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

1 Like

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.