Collection definition and use are the key aspects for program analysis in the pC++ system. Programmers using pC++ require support for observing the collection data structures with respect to both their object-oriented definition and their parallel execution semantics. The programmer should not have to know or understand the effects of pC++ program transformations. The program analysis tools, on the other hand, do need to be able to access various information associated with a pC++ program, its compilation and execution. This data must be made consistent with the pC++ programming paradigm. For example, we can assume that the programmer is aware that collection elements are operated upon by multiple processors, but may not understand how the runtime system supports element access. Hence, when collection performance data is presented to the user, it should be with respect to collection definition and execution semantics (e.g., by collection element references and method execution times).