how to specify custom synchronization primitives?

how to specify custom synchronization primitives?


I am trying out Intel Parallel Inspector to look for data races in our C++ codebase. The tool identifies a number of false "races", most likely because it does not seem to understand the synchronization primitives. The code uses Boost C++ synchronization, specifically boost::mutex, boost::shared_lock, boost::unique_lock, and boost::upgrade_lock. It also has some custom rwlocks.

How can I specify the lock functions so Parallel Studio won't complain about data accesses that are correctly protected by the locks? I read something about ITT_NOTIFY() but I couldn't find any documentation or examples.

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello joe!

You have correctly analyzed the issue! By default, the Parallel Inspector recognizes all native threading primitives. Our previous generation of products enabled support for custom threading implementations via _itt_notify APIs. For backward-compatibility, Intel Parallel Inspector supports these legacy APIs.

Regarding documentation of the _itt_notify APIs, they are part of the Thread Checker and Thread Profiler products and are documented in those products. Please see the Thread Checker documentation for details.


Leave a Comment

Please sign in to add a comment. Not a member? Join today