This post will discuss each of the tests available in the MPPTest package distributed with MPICH. MPTest was installed on a 2 Raspberry Pi parallel cluster. This is a learning experience for me. I’ll provide references where others have documented their use.
The following tests are in the MPPTest package and were discussed in the paper Performance of BGL .I used the outline provided by the document to develop my own tests.
- MPPTEST – Measuring MPI Performance - Has MPPTest parameter descriptions.
Point to point performance
Basic send and receive performance
This test looks at the performance of a ping-pong” test using MPI_Send and MPI_Recv. This provides one test of the basic latency of the communication.
$ mpptest -auto -size 0 2048 16
Communication mode performance
This test looks at the performance of a ping-pong” test using different send and receive modes, including blocking, non-blocking (labeled async), persistent. Lines labeled any used MPI_ANY_SOURCE; other used a specific source rank with the receive call.
Halo Communication Performance
This test looks at the performance of a halo-exchange test using MPI_Isend, MPI_Irecv, and MPI_Waitall. Tests with 2 neighbors .
$ mpptest -halo -logscale -np 2
In this test, each process is participating in a ping-pong test with one other process. For example, for 32 processes, there are 16 pairs of processes, each performing a ping-pong test. This provides a simple measurement of the performance and scalability of the communication system.
$ mpptest -bisect -logscale -size 8 262144 64
This test measures the performance of MPI_Bcast. Since this operation is asymmetric, this test measures the operation using different root processes.
$ mpptest -gop -bcast -logscale
This test measures the performance of MPI_Allreduce.
$ mpptest -gop -dsum -logscale
- Performance of BGL
The Parallel BGL: A Generic Library for Distributed Graph Computations - This paper demonstrated the use of performance measuring to compare the performance of various libraries in a parallel environment.
This section describes the usage of Google Caharts PHP API to plot the performance graphs.