So it seems like our solution now is to add more cores and take advantage of parallelism in our code. What is the future for hardware, then? Eventually, will we hit a point where adding more cores isn't the solution, just like when more ILP stopped being very useful? Where do we go from there? I can't imagine progress in hardware will ever just come to a halt.
I feel like as the size of our computing problems continues to grow, our only solution will be to add more cores, processors, or even entire computers in a network to perform those computations. Until we reach some breakthrough technology that allows us to continue exponentially increasing the speed of our computers, it will be on us to develop better networks and communication systems to reduce the overhead of distributing the workload.
One example of creating hardware architecture to speed up parallelism is described here