Skip to Main Content
Parallel block vector profiles (PBVs) establish a mapping between a multithreaded application's basic blocks and the degree of parallelism the application exhibits each time a block executes. PBVs offer a new perspective that helps users both reason about parallel programs' hardware and software interactions and identify opportunities for performance improvements. Here, the authors present two PBV applications for architectural design and discuss further opportunities to apply PBVs in other fields. They also demonstrate how the open-source tool Harmony lets programmers collect PBVs with minimal programmer effort and application perturbation.