D. Bernstein et al., SOLUTIONS AND DEBUGGING FOR DATA CONSISTENCY IN MULTIPROCESSORS WITH NONCOHERENT CACHES, International journal of parallel programming, 23(1), 1995, pp. 83-103
Citations number
24
Categorie Soggetti
Computer Sciences","Computer Science Theory & Methods
We analyze two important problems that arise in shared-memory multipro
cesser systems. The stale data problem involves ensuring that data ite
ms in local memory of individual processors are current, independent o
f writes done by other processors. False sharing occurs when two proce
ssors have copies of the same shared data block but update different p
ortions of the block. The false sharing problem involves guaranteeing
that subsequent writes are properly combined. In modern architectures
these problems are usually solved in hardware, by exploiting mechanism
s for hardware controlled cache consistency. This leads to more expens
ive and nonscalable designs. Therefore, we are concentrating on softwa
re methods for ensuring cache consistency that would allow for afforda
ble and scalable multiprocessing systems. Unfortunately, providing sof
tware control is nontrivial, both for the compiler writer and for the
application programmer. For this reason we are developing a debugging
environment that will facilitate the development of compiler-based tec
hniques and will help the programmer to tune his or her application us
ing explicit cache management mechanisms. We extend the notion of a ra
ce condition for IBM Shared Memory System POWER/4, taking into conside
ration its noncoherent caches, and propose techniques for detection of
false sharing problems. Identification of the stale data problem is d
iscussed as well, and solutions are suggested.