This basically marks the transition from software engineering transforming into hardware engineering. No longer is it about sequential algorithms, it's not about linearity. It's about destroying sequential algorithms; breaking down large sequential algorithms into smaller algorithms manipulating the same data at the same time. This requires a great amount of brain power and essentially helps us understand algorithms in greater detail, and make them run faster, but in no way would I agree that it helps software functionality.
EDIT: It provides more power to the programmer. Power that is useless for a programmer that wants to develop functional software. This is why new languages and more CS/EE research will be involved. More power == more levels of abstraction. It depends on the level of abstraction that you're working with to decide whether you're going to benefit from performance or expressiveness (code expressiveness, which I like to directly correlate to software functionality independent of code performance).
I love shitting my brains out on this type of stuff; Could be right, could be wrong. All I know is that the future is undef... and I enjoy it...