Intel® Advisor

Task Interactions and Suitability

If your tasks access the same memory locations, then, left to themselves, they will tend to trip over each other. You can solve this by adding synchronization code to make sure the tasks are well-behaved when they access shared memory locations, but synchronization code can be tedious to add and hard to get right, and it is easy to end up with tasks that spend more time doing synchronization than doing work.

Reducing Lock Overhead

Lock overhead is the time spent in creating, destroying, acquiring, and releasing locks. Lock overhead does not include the time spent waiting for a lock held by another task - that is called lock contention. You can think of lock overhead as the cost of the lock operations themselves assuming the lock is always available.


After you locate the parts of your program that use significant CPU time, add Intel® Advisor annotations into your sources to mark (propose) the likely places where you might add parallelism. You run Intel Advisor tools to collect data about your running program.

Subscribe to Intel® Advisor