Interesting take on comparability vs performance. I gotta imaging capturing user data and sending to a cloud collector is also a big culprit.
Interesting take on comparability vs performance. I gotta imaging capturing user data and sending to a cloud collector is also a big culprit.
So what I want to know is why do we still have programs that run on a single core when nearly every Windows PC out there is running a multi-core processor?
What are we missing to have the OS adapt any program to take advantage of the hardware?
To run something on multiple cores you need to detect a bunch of different tasks it is doing that don’t depend on one another. Then you can execute each task in its own thread. The problem is that most often these different task don’t exist, or, if they do, figuring them out automatically by the code is likely equivalent to solving the halting problem, that is it’s undecidable and there can’t exist a program that does this.
Multi-threaded programming is hard. You can’t just write some code and expect it to work across 4 cores, you need to know what to parallelise and how to do it. If you think normal bugs are hard to fix, just wait until you have a calculation that gives a different answer each time you run it thanks to race conditions.