next up previous
Next: Context Descriptors Up: OpenMP Performance Tool 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 extending OpenMP, 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, so another (less efficient) mechanism would have to be used here.

Sameer Suresh Shende
Thu Aug 23 11:19:57 PDT 2001