A Parallel Modeler for Serial Applications

You need to add parallelism to your application... Where do you start? How do you determine that adding parallelism and working through data sharing problems is worth the effort?

If you have ever parallelized a serial program, you know how tricky it can be to answer these questions! With the move to multi-core processors, the need to parallelize software is becoming somewhat inevitable. Those who chose to continue to ship serial code are potentially exposing themselves to obsolescence. Parallelization is becoming essential for survival in this tough marketplace.

Moving from an existing serial code base to efficient and correct parallel code is often difficult, error prone and expensive. Using intuition to identify the parallelization opportunities and then ascertaining that the parallelization was done correctly can be hit-or-miss. The whole experience can be improved using a tool like Intel® Parallel Advisor Lite – which has been built for this exact problem.

Parallel Advisor Lite is a parallel modeler for your serial application – you would use this tool to explore or model parallel possibilities while keeping your application serial. This is important because a parallel modeler lets you continue to use your existing test system and debugging methods as you modify your application to resolve data access issues.

Intel® Parallel Advisor Lite Workflow The Parallel Advisor Lite workflow guides you through the process of

1. identifying performance “hotspots” in your application; those regions where your program spends most of its time
2. inserting Parallel Advisor Lite annotations to model your parallel experiments
3. verifying the performance benefit
4. having Parallel Advisor Lite Correctness Modeling verify data accesses that occur within your annotated sites/tasks
5. resolving the data conflicts that were identified by Parallel Advisor Lite’s Correctness Modeling – by either modeling locks or refactoring your serial application
6. testing your source changes by running your existing test system – this is possible because your application is still serial

Tell us what you think of Parallel Advisor Lite - we appreciate your feedback! Did it lessen a pain or solve a problem you encountered on the road to effective parallelization? How can it be improved?

p.s. Did you know that Parallel Advisor Lite is not tied to a threading paradigm? Or that you can build with either the Microsoft® VC++ compiler or the Intel® C++ compiler?
