In Section 2.3 we discussed why current tools are not adequate for performance understanding. From that discussion, we can define four basic features that a performance understanding framework must provide: (1) static information, (2) dynamic information, (3) hierarchical abstraction of performance data, and (4) integration of dynamic and static information. In this chapter we describe Carnival , a framework for performance understanding. The next section describes the support provided by Carnival for these features, followed by a description of our working scenario in Section 3.2. Section 3.3 describes a Carnival implementation for HPF programs on the IBM SP2 machine. The last section discusses briefly how the framework can be used for implementing performance explanation techniques.