The above formulation allows us to quantify the measurement overheads that occur in inclusive and exclusive times as a result of measured parallel profiling. If we were to actually compute these overheads, it must be done at runtime because the overheads depend on the dynamic calling behavior. However, our goal is to additionally remove the measurement overhead incurred in parallel profiling. Thus, the profiling system must both track the overhead and compensate for it dynamically in profile computations.
As a first step, we must determine the values and . These overhead units will certainly depend on the machine and compilers used, but could also be influened by the application code, the languages and libraries, how the application is linked, and so on. Also, it should not be assumed that and are constant. In fact, they may change from run to run, or even within a run. This means that we must measure the overhead values at the time the application executes, and even then the values will be approximate. The approach we propose is to conduct overhead experiments at application startup.