I have a new appreciation for the Suitability tool in Intel® Parallel Advisor. Intel Parallel Advisor was created to help us add parallelism to existing serial code, but I’ve discovered another useful, possibly unconventional, use for Intel Parallel Advisor with my parallel application. I’ve discovered that I can use Intel Parallel Advisor to collect valuable performance and scalability information about my parallel application that would be difficult to collect otherwise.
It's becoming a fact that creating efficient and responsive software that takes advantage of multi-core hardware designs requires writing parallel applications or adding parallelism to existing code. I usually find that while adding parallelism to my code is the same as any other source code modification, the considerations and ramifications are very different. Having a clear understanding of the concepts required for successful parallel programming is something I have focused on and that I feel will be valuable as hardware core counts increase.
Multi-core processors are ubiquitous now and it has become necessary to exploit the additional processing capabilities afforded by the multiple cores. Software written for single-core processors with serial execution in mind now needs to be retargeted to multi-core processors. We are obviously talking about programs which execute on a single machine and in a single process rather than those that are multi-process or those that execute on a distributed cluster.