check threads binding

check threads binding

Stefano C.的头像

Hi all,

I'm developping a multi-threaded application running on a generic multi-core platform. For performance, I'm mainly interested in making sure that threads are not being migrated and the they are running in the most appropriate core for efficient cache usage. I was wondering if there is a way to check which thread is running in which core during the whole execution time in Vtune (or other Intel tools)?


3 帖子 / 0 new
Peter Wang (Intel)的头像

Please try these steps:

1. Use advanced-hotspots collector in VTune(TM) Amplifier XE 2013 Update 12 to profile your application

2. Open Bottom-up report after data collecting, you will see Hotspots viewpoint

3. Change "Grouping" to "Package / HW Context / Function / Call Stack" to view results.

4. There are many threads displayed in timeline panel, bottom of Bottom-up report, select one of your interest

5. Associated items, such as package_n / cpu_n / functions will be highlighted in upper panel - you can expand on nodes (package/cpu) to know that your thread worked on which package/cpu, and functions' name, and CPU time. If your thread was binded in one core, VTune will report data only on one core. 

Stefano C.的头像

Great! Thanks Peter!