This tutorial will cover topics from MPI-2, the collection of advanced features added to the MPI standard specification by the second instantiation of the MPI Forum. Such topics include dynamic process management, one-sided communication, and parallel I/O. These features are now available in multiple vendor and freely available MPI implementations. Rather than present this material in a standard "reference manual" sequence, we will provide details of designing, coding and tuning solutions to specific problems. The problems will be chosen for their practical use in applications as well as for their ability to illustrate specific MPI-2 topics. Familiarity with basic MPI usage will be assumed. William Gropp and Ewing Lusk are senior computer scientists in the Mathematics and Computer Science Division at Argonne National Laboratory. They have been involved in both the specification and implementation of MPI since its beginning, and have written and lectured extensively on MPI.