VMware believes that external collaboration is essential to true innovation. VMware Labs is happy to call attention to a tool of interest for Flings followers called PAPI. Our academic partner the University of Tennessee created and publishes PAPI.
PAPI, the Performance API project, specifies a standard application-programming interface (API) for accessing hardware performance counters available on most modern microprocessors. These counters exist as a small set of registers that count Events, occurrences of specific signals related to the processor’s function. Monitoring these events facilitates correlation between the structure of source/object code and the efficiency of the mapping of that code to the underlying architecture.
PAPI-V adds detection of operation inside a virtual environment and several virtual machine related components, including one to report steal time from Linux. The VMware Academic Program (VMAP) recently caught up with one of the members of the PAPI team, Matt Johnson, to learn more about this tool.
VMAP: Hi Matt, could you tell us about the PAPI project?
Matt: Sure! Right now at the University of Tennessee we’re working on PAPI. We’ve extended PAPI 5.0 to be better suited for virtual machines. What that really means is we want to be able to collect all this performance data that High Performance Computing has been using for years to tune and test programs, and extend that for virtual clusters such as VMware and KVM. We’ve done a little bit of research into it. Hopefully with ESX 5.1 we’ll be able to get more performance data out of that, better validate our results, and prove that VMware virtual spaces have the same performance data that we’ve been seeing and that will be able to mimic what we’ve been seeing for years[in the bare-metal space].
VMAP: Who would be the target audience for using this tool?
Matt: That’s a very wide range. PAPI is normally targeted towards scientific users. With the release of the VMware component for PAPI, it really can be targeted towards IT administrators as well, because we are using the VMware SDK to get virtual machine statistics out of the machine (such as user statistics, etc.). This all also includes the timing routine counters. That allows us to get a little bit of timing resolution in the machine. That would be our target audience—the typical scientific users, and we’re trying to extend this to IT admins as well.
VMAP: What made you decide to release PAPI as a Fling rather than just keep it and continue working on it internally?
Matt: Well I guess that was based on our users. When our users want something, we try to provide it to them. We released this as an experimental version—PAPI 4.4—and there were really no arguments with it; no one complained about the usage of it. With good usage of the component we decided to put it into full production. And while we’re going to keep working on that, we hope to really expand it in the future because we see a lot of trends going to the virtual space. That’s why we want to do that.
VMAP: Is there anything else that you think someone who is downloading this to use should know, or would want to know about PAPI?
Matt: Be sure to read the documentation! This tool is for someone who wants to look for something very specific – you’re looking for very specific usage data and very specific metrics in your system. Normally that’s going to be more of a power user. Just make sure you read the documentation—because when you install this component one of the things we’re encountering, especially with vMotion, is that when you migrate from one system to another, the counters aren’t going to always be there because it’s very hardware-specific as well. Although a VMware-type guest operating system is not hardware-specific if it’s going to migrate, PAPI is, because it’s very hardware contained. That’s something that you will need to be aware of. We’re trying to work on this, it’s a very open research issue right now, but be aware that PAPI is a hardware dependent library.
This tool is created outside of VMware, and while VMware believes that the tool is of interest to our ecosystem, we cannot make guarantees, warranties, or support of any kind for this tool. If you choose to use this tool, do so at your own risk.