page 1  (5 pages)
2to next section


Visualisation of Cache Coherence Bottlenecks in

Shared Memory Multiprocessor Applications

Mats Brorsson and Per Stenstr?m

Department of Computer Engineering, Lund University,

P.O. Box 118, S-221 00 Lund, Sweden

email: [email protected]


Shared memory multiprocessors are becoming more and more important but one major problem is

how to keep the processor caches coherent. Many different solutions to this problem exist and the

performance of a given program depends largely on the access pattern observed to shared data, the

sharing behaviour.

We discuss in this paper how to characterise and visualise sharing behaviour. In terms of cache

coherence the degree of sharing, the access mode and the temporal granularity are found to be

essential in order to describe and understand sharing behaviour. The sharing behaviour can be meas-

ured by simulation and visualised in a sharing profile diagram.

We use an unblocked matrix multiplication and two different ways of parallelising a blocked

matrix multiplication algorithm to illustrate the problems involved and how the sharing profile can

aid in choosing the right algorithm.

1.0 Introduction

The use of caches to reduce memory latency and interconnect traffic is imperative in high performance shared mem-

ory multiprocessors. The problem of keeping the contents of the caches coherent is however a major obstacle which

has to be conquered. A number of coherence mechanisms have been proposed in the literature and it is widely

acknowledged that their relative performance is highly dependent on the sharing behaviour of the workload. In order

to understand how a particular application will perform using a given cache coherence protocol we need a thorough

comprehension of how the processors access the shared data structures.

Moreover, when writing new applications for shared memory multiprocessors, or when parallelising existing

ones, it may be necessary to consider other issues than the pure algorithmic speedup. An algorithm, which on a

PRAM has the best efficiency, may exhibit a sharing behaviour that leads to a large communication overhead. The

performance of a parallel application on a given architecture is a complex function of algorithmic speedup and the

performance penalty paid on keeping the caches coherent.

In this paper we will address the issue of the importance of analysing and understanding the sharing behaviour of

parallel applications. We are using a method for measuring and visualising sharing behaviour which we apply on an

unblocked and a blocked algorithm of matrix multiplication. We analyse the sharing behaviour of two different ways

of parallelising the blocked matrix multiplication algorithm. The analysis is used to explain the differences in per-

formance of the various algorithms when executed on a simulated multiprocessor with a full-map and limited direc-

tory cache coherence protocol respectively.

The next section discusses sharing behaviour and how it relates to cache coherence protocols. Section 3.0 presents

how the sharing behaviour can be measured and visualised. We then continue with an analysis of the different matrix

multiplication algorithms in Section 4.0. In Section 5.0 we present simulation data of two simple cache coherence

protocols and discusses the results before concluding the paper in Section 6.0.

2.0 Sharing behaviour in relation to cache coherence protocols

In this section we will look at the aspects of sharing that are important for the performance of a cache coherence pro-

tocol. If process migration is not allowed, the instructions and the process? private data will also be private to the

processing element. We will thus only be concerned with shared data. For simplicity we consider only write-invali-

date schemes. Similar reasoning can be applied to write-update schemes.

Agarwal et al. discusses in their article a number of directory based cache coherence protocols [1]. They use the

notation DiriX where i is the maximum number of copies of a memory block. X may be NB for Non Broadcast or B

for Broadcast. We will use the DirNNB and the Dir2NB protocols as examples of how the sharing behaviour affects

their relative performance. N is the total number of caches in the system. DirNNB is also called the full-map directory

protocol, and Dir2NB the limited directory protocol with 2 pointers.

In IEEE Computer Society Technical Committee on Computer Architecture Newsletter

Nr. 3, Fall 1993, pages 32-36