Performance monitoring in a Myrinet-connected SHRIMP cluster

Liao Cheng, Margaret Martonosi, Douglas W. Clark · 1998

Performance monitoring is a crucial aspect of parallel programming.Extracting the best possible performance from the system is the main goal of parallel programming, and monitoring tools are often essential to achieving that goal.A common tradeoff arises in determining at which system level to monitor performance information and present results.High-level monitoring approaches can often gather data directly tied to the software programming model, but may abstract away crucial low-level hardware details.Lowlevel monitoring approaches can gather fairly complete performance information about the underlying system, but often at the expense of portability and flexibility.In this paper we discuss a compromise approach between the portability and flexibility of high-level monitoring and the detailed data awareness of low-level monitoring.We present a firmware-based performance monitor we designed for a Myrinet-connected Shrimp cluster.This monitor combines the portability and flexibility typically found in software-based monitors, with detailed, low-level information traditionally available only to hardware monitors.As with hardware approaches, ours results in little monitoring perturbation.Since it includes a software-based global clock, the monitor can track inter-node latencies accurately.Our tool is flexible and can monitor applications with a wide range of communication abstractions, though we focus here on its usage on shared virtual memory applications.The portability and flexibility of this firmware-based monitoring strategy make it a very promising approach for gathering low-level statistics about parallel program performance.

Read the paper · More papers on PaperTik