The structural approaches presented use application structure information to produce a model. The description-based approach requires a description of the application and its characteristics. Usually this description restricts the range of applications, requires some special software to process it, and the user must describe the application.
The static analysis approach does not require a specific description other than the source code of the program, but the development of the tools is expensive. In this case, the model is restricted by the accuracy of static analysis tools. However, these tools can do a significant part of the work that is attributed to the user in other approaches.
Both techniques are based on internal models of parallel system behavior, which may be very conservative or unrealistic, because of dynamic features that cannot be determined without real executions. Thus, the understanding of the performance of parallel programs can be facilitated significantly by verifying the static behavior of applications, but it is also necessary to use dynamic information.