S7R1K3R, on 28 November 2012 - 20:52, said:
What comes first, the hardware or the software to run on said hardware?
SharpGreen, on 28 November 2012 - 20:56, said:
The hardware always comes first.
It depends. In short - software can be designed to be scalable.
Long story - in most cases it even is - rarely a program (or an app... dog, I hate this term) is single-threaded these days. Just that managing multiple threads so that they don't race each other, spinlock, starve for data or deadlock - that's a damn pain in the ass for most programmers these days. And with a good reason, because it actually is very hard and complicated thing, requiring to draw flowcharts and doing hand optimizations for pretty much anything. OS schedulers and CPUs are very slowly getting better at being relied on for that, however often neither has a clue of the importance of the task at hand, not as it's being perceived by the user - they just have a priority list of hundreds of threads that each cry for more cycles. That way we are left with throwing bigger and bigger iron at the problem. I genuinely hope that there won't be a technological breakthrough for reducing process sizes so that it this unwillingness to do hard work will become problematic, even cease.