next up previous contents
Next: Total Saturation Bandwidth: Up: Multi-Processor Benchmarks Previous: Multi-Processor Benchmarks

Communication Benchmarks: COMMS1 and COMMS2

The purpose of the COMMS1, or Pingpong, benchmark [22,10] is to measure the basic communication properties of a message-passing computer. A message of variable length, n, is sent from a master processor to a slave processor. The slave receives the message into a Fortran data array, and immediately returns it to the master. Half the time for this message pingpong is recorded as the time, t, to send a message of length, n. In the COMMS2 benchmark there is a message exchange in which two processors simultaneously send messages to each other and return them. In this case advantage can be taken of bidirectional links, and a greater bandwidth can be obtained than is possible with COMMS1. In both benchmarks, the time as a function of message length is fitted by least squares using the parameters (\rnhalf) [16,19] to the following linear timing model:


t = (n + \nhalf)/\rinf (2)

when the communication rate is given by


r = \frac {\rinf}{1+\nhalf/n} = \rinf \pipe (n/\nhalf) (3)

where \pipe (x) = \frac {1}{1 + 1/x} (4)

and the startup time is


t_0 = \nhalf/\rinf (5)

In the above equations, \rinf~ is the asymptotic bandwidth of communication which is approached as the message length tends to infinity (hence the subscript), and \nhalf~ is the message length required to achieve half this asymptotic rate. Hence \nhalf~ is called the half-performance message length.

The importance of the parameter \nhalf is that it provides a yardstick with which to measure message-length, and thereby enables one to distinguish the two regimes of short and long messages. For long messages (n > \nhalf), the denominator in equation (5) is approximately unity and the communication rate is approximately constant at its asymptotic rate, \rinf


r \approx \rinf (6)

For short messages (n < \nhalf), the communication rate is best expressed in the algebraically equivalent form


r = \frac {\pi_0 n} {(1+ n/\nhalf)} (7)


where \pi_0 = t_0 ^{-1} = \rinf/\nhalf (8)

For short messages, the denominator in equation 9 is approximately unity, so that


r \approx \pi_0 n = n / t_0 (9)

In sharp contrast to the approximately constant rate in the long-message limit, the communication rate in the short message limit is seen to be approximately proportional to the message length. The constant of proportionality, \pi_0, is known as the specific performance, and can be expressed conveniently in units of kilobyte per second per byte (kB/s)/B or `k/s'. Unfortunately since an SI prefix, such as k, cannot stand alone without a unit symbol, this unit must be written either as 10^3/s or as kHz, where Hz is a special unit name for per second (s^{-1}).

Thus, in general, we may say that \rinf~ characterises the long-message performance and \pi_0 the short-message performance. The COMMS1 benchmark computes all four of the above parameters, (\rinf, \nhalf, t_0, \rmand \pi_0), because each emphasises a different aspect of performance. However only two of them are independent. In the case that there are different modes of transmission for messages shorter or longer than a certain length, the benchmark can read in this breakpoint and perform a separate least-squares fit for the two regions. An example is the Intel iPSC/860 which has a different message protocol for messages shorter than and longer than 100 byte.

Because of the finite (and often large) value of t_0, the above is a two-parameter description of communication performance. It is therefore incorrect, and sometimes positively misleading, to quote only one of the parameters (e.g. just \rinf, as is often done) to describe the performance. The most useful pairs of parameters are (\rnhalf), (\pi_0, \nhalf) and (t_0, \rinf), depending on whether one is concerned with long vectors, short vectors or a direct comparison with hardware times. Note also that, although \nhalf is defined as the message length required to obtain half the asymptotic rate \rinf, the two parameters \rnhalf are sufficient to calculate the communication rate for any message length via equation 5, or equivalently using \pi_0 instead of \rinf via 9.

The COMMS1 and COMMS2 benchmarks exist as part of the Genesis benchmarks [23].

next up previous contents
Next: Total Saturation Bandwidth: Up: Multi-Processor Benchmarks Previous: Multi-Processor Benchmarks
Tue Nov 14 15:43:14 PST 1995