next up previous
Next: Context Descriptors Up: Proposed OpenMP Performance Previous: Performance Monitoring Library

User Code Instrumentation

 

For large application programs it is usually not sufficient to just collect OpenMP related events. The OpenMP compiler should also insert appropriate pomp_begin() and pomp_end() calls at the beginning and end of each user function. In this case the context descriptor describes the user function. In addition, users may desire to mark arbitrary (non-function) code regions. This can be done with a directive mechanism similar to that described in the last subsection, such as

The directives are translated into pomp_begin() and pomp_end() calls. Again, techniques can be used to avoid defining new directives, but with the same disadvantages as described in the last section. Furthermore, the transformation tool / compiler cannot generate the context descriptor for this user defined region in this case, so another (less efficient) mechanism would have to be used here.

The full proposed OpenMP performance API is shown in Table 3.



Sameer Suresh Shende
Thu Aug 23 11:13:47 PDT 2001