2 ms·
With 100 threads running like that, not only do you have the overhead of the OS scheduling 100 threads to run on ~8 or whatever cpu cores, but also I would assu
by klowner 8y ago
With 100 threads running like that, not only do you have the overhead of the OS scheduling 100 threads to run on ~8 or whatever cpu cores, but also I would assume these threads are all running different code, so there would be some overhead with context switching / cache. Presumably these threads communicate, so they're likely using some form of synchronization primitives.
Here's a pretty enjoyable video about how they handled this sort of engine design problem using something sensible: https://www.gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine https://www.gdcvault.com/play/1022186/Parallelizing-the-Naug...