Measuring Parallelism: How Much Power Are You Wasting?
Management professionals love metrics. However, they don't like the idea to optimize applications that are currently running. Thus, what about showing them some metrics about the power that they are wasting using a free tool?Paradigm shifts are difficult. Revolutions are complex. The parallelism age is here and many developers are anxious to begin learning and working with new programming models in order to exploit modern multicore microprocessors. However, it is indeed difficult to convince managers that new things need to be done.
There is a simple yet powerful free tool developed by Intel that allows you to measure the level of concurrency found in any application during a certain period of time. This tool is Intel Concurrency Checker 2.1. It provides very interesting metrics related to the parallelism capabilities used by any application (any executable or binary), taking into account the features offered by the underlying hardware. It considers both the physical cores and the logical cores, taking into account Hyper-Threading technology when available.
This means that you can run this application telling it the executable or binary to test and it will show you some parallelism metrics. These metrics will tell you whether the application is using concurrent code and the average degree of parallelism. You don't need to install the application, it is a simple executable that you can download, run and measure.
However, if you use a non-English Windows XP version, you'll have some problems. The application has a bug and it will not run in non-English Windows XP versions, because it cannot find many hard-coded English names. If you use Windows Vista, you won't have problems, no matter the default language. This bug applies to non-English Windows XP.
The tool is available in Windows and Linux and it is updated with the most modern microprocessors. The documentation for this powerful application was not very easy to understand. Hence, I took the time to create and upload a simple five-minute how-to video that shows Intel Concurrency Checker 2.1 in action, measuring a parallelized application. You can watch it here, from Intel Software Network or here from blip.tv.
If your application is already parallelized, the tool will tell you the degree of parallelism achieved. You can also use it to compare between many optimized versions.
If your application isn't parallelized, it will tell you the quantity of power that it is wasting according to the underlying hardware. Excellent to convince your managers to jump into the parallelism age.
You can use the results of this excellent tool to convince your managers that you need to optimize some code to take advantage of the new multicore microprocessors. It is very easy to use and watching the aforementioned video, you will learn the required steps to measure parallelism in a few minutes.