Get familiar with the application you will make multi-threaded. Knowing your own application is important since you must have a rough idea of where to place markers to site possible parallel opportunities. By knowing the demo application, you can get a better idea of where to place these markers that will help the Intel Advisor guide us on adding parallelism.
- [Narrator] This is a very basic C++ application. When learning a new tool, it's better to keep the application you're profiling as simple as possible. If we run the demo app, we can see this massive output in the command prompt. After it completes, if I scroll all the way up I can see this label called BUBBLE SORT. And then scrolling down a bit I can then see this label called INSERTION SORT. Scrolling further down, we can see SELECTION SORT.
This is a list of popular sorting algorithms, and knowing the time and space complexity for each one is a common interview question. This table shows the average, best, and worst case efficiency of the eight different sorting algorithms the demo application uses. These eight sorting algorithms are highlighted right here. The demo application first populates an array with random numbers. This list is then passed to these eight sorting algorithms. This is the Big O notation for each algorithm's efficiency. These are color coded.
So red is bad, orange is not good, yellow is okay, and green is good. Each sorting algorithm is executed one at a time in a sequential order. The goal is to have this application run all eight sorting algorithms, all at the same time.
- Installing Intel Advisor
- Sorting source code
- Integrating Visual Studio and Intel Advisor
- Discovering parallel code
- Adding markers for parallelism
- Predicting parallel behavior
- Predicting data sharing problems
- Adding parallelism with a task handler
- Forecasting performance gains