Parallel / concurrent programming is a reality of modern software development, and is necessary when developing high-performance scientific software.
[…] the performance lunch isn't free any more […] if you want your application to benefit from the continued exponential throughput advances in new processors, it will need to be a well-written concurrent (usually multithreaded) application.
This quote comes from an essay written in 2004 – while processors and compilers continue to improve, clock speed has hit a brick wall.