users to visualize and analyze them. Performance analysis When a large scale, often supercomputer level, parallel system is being developed, it is essential to be able to experiment with multiple configurations and simulate performance. There are a number of approaches to modeling message passing efficiency in this scenario, ranging from analytical models to trace-based simulation and some approaches rely on the use of test environments based on "artificial communications" to perform synthetic tests of message passing performance. Systems such as BIGSIM provide these facilities by allowing the simulation of performance on various node topologies, message passing and scheduling strategies. Analytical approaches At the analytical level, it is necessary to model the communication time T in term of a set of subcomponents such as the startup latency, the asymptotic bandwidth and the number of processors. A well known model is Hockney's model which simply relies on point to point communication, using T = L + (M / R) where M is the message size, L is the startup latency and R is the asymptotic bandwidth in MB/s. Xu and Hwang generalized Hockney's model to include the number of processors, so that both the latency and the asymptotic bandwidth are functions of the number of processors. Gunawan and Cai then generalized this further by introducing cache size, and separated the messages based on their sizes, obtaining two separate models, one for messages below cache size, and one for those above. Performance simulation Specific tools may be used to simulate and understand the performance of message passing on computer clusters. For instance, CLUSTERSIM uses a Java-based visual environment for discrete-event simulation. In this approach computed nodes and network topology is visually modeled. Jobs and their duration and complexity are represented with specific probability distributions allowing various parallel job scheduling algorithms to be proposed and experimented with. The communication overhead for MPI message passing can thus be simulated and better understood in the context of large-scale parallel job execution. Other simulation tools include MPI-sim and BIGSIM. MPI-Sim is an execution-driven simulator that requires C or C++ programs to operate. ClusterSim, on the other hand uses a hybrid higher-level modeling system independent of the programming language used for program execution. Unlike MPI-Sim, BIGSIM is a trace-driven system that simulates based on the logs of executions saved in files by a separate emulator program. BIGSIM includes an emulator, and a simulator. The emulator executes applications on