The Message Passing Interface (MPI) standard has recently been completed. MPI is a specification for a library of functions that implement the message-passing model of parallel computation. One novel feature of MPI is its very general "profiling interface," that allows users to attach assorted profiling tools to the MPI library even though they do not have access to the MPI source code. We describe the MPI profiling interface and describe three profiling libraries that make use of it. These libraries are distributed with the portable, publicly available implementation of MPI. 1 Introduction Parallel programs are more difficult to understand than sequential ones. It is common to conceive of a parallel algorithm, implement it, and then be puzzled by its disappointing performance, even though the program executes correctly. What is then needed is an instrumentation of the program, so that data can be collected that will lead to an understanding of the program's behavior. The diff...