The type of programs that are executed on the machine heavily influences the design of a high-performance computer. Thus, it is essential for computer designers and programmers to understand the characteristics of the programs they are interested in running to select a computer design that provides the best performance. In many cases, summary information about the programs can be used to gain insight about the programs’ behavior. Simple statistical parameters describing distribution characteristics such as size, destinations and sources of messages, and times between sends would give the designers of the communication libraries and the computer hardware great insight into how the hardware is used by actual programs. This book seeks to remedy this by collecting parameterized data that concisely describe how message passing programs’ data communicate between processors and applying this parameterized data to queuing system models to improve the accuracy of performance estimates. This book enable designers of high-performance computers and users of parallel applications to make informed decisions on what computer architectures would best support the programs of interest.