Quote Originally Posted by ImaNihilist View Post
It's a bit of a mathematics issue as well. It's difficult to multithread a lot of applications, especially those you want to respond in real time. Cutting up video to be rendered or compressing is easy—it's a fixed length and you can divide it any number of ways.

That's what was so interesting to me about Watson. They throw 3,000 cores at a something you wouldn't think could be heavily multithreaded, and it responds in near real time. I'm not quite sure how they did it. What, exactly, was each core doing? Some processing audio, some looking for keywords, others doing probability…but how do you scale that over 3,000 threads?
I believe Watson was fed text files of the questions. I'm pretty sure the enormous amount of computer programmers that are coding these days are not doing it at a machine level. I bet there are only a handful of people that actually write code at that basic level, which is needed to progress the software front. I'd venture to guess 90% or more of programmers only know high level languages such as C and Java. There is no way to tackle unique hardware issues using those.