Apr 12

MPPTest Performance Tests for RPi Cluster

Overview

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.

MPPTest Tests

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.

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

Bisection Performance

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

Collective performance

Broadcast

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

Allreduce

This test measures the performance of MPI_Allreduce.
$ mpptest -gop -dsum -logscale

References

Appendix

This section describes the usage of Google Caharts PHP API to plot the performance graphs.

Older posts «