Plan for the Future: Express Parallelism, Don't Manage It

When adding parallelism, the key design choice is to express concurrency in an application without explicitly managing the scheduling of that concurrency onto the hardware.  


advertisement
he days of large increases in clock frequency are behind us. It was great while it lasted, but it's now clear that we have finally hit a frequency wall. Contrary to popular opinion, that wall is due to heat and energy concerns, not the end of Moore's Law. Instead, the current trend is to use the additional transistors predicted by Moore's Law to provide multiple processing cores and to support multiple threads per core.


For developers, this change in architecture means there is extra performance potential available if needed, but it also means that developers must do some extra work to take advantage of it. But wait! Don't jump off the cliff unless you need to. Not every application needs to be parallel. If performance is not an issue for a particular application, then there's no need to add parallelism. Even if your application is single-threaded, users can still benefit, because their multicore platforms can execute multiple applications concurrently. However, if exploiting the available performance potential increases application usability or allows you to add new features, it makes sense to take the plunge into parallel programming.

It's quick, easy and you get access to all the articles on DevX.
This registration/login is to allow you to read articles on devx.com.
Already a member?