The Community for Technology Leaders
Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (1999)
Newport Beach, California
Oct. 12, 1999 to Oct. 16, 1999
ISSN: 1089-795X
ISBN: 0-7695-0425-6
pp: 183
Zhiyuan Li , Purdue University
ABSTRACT
Parallelizing compilers for shared-memory multiprocessors typically generate fork/join programs in which multiple threads may access different sections of shared arrays. Each thread tends to access discontiguous addresses due to the gap between sections which belong to different arrays. Such interarray discontiguity often causes cache-set conflicts even when the private cache is large enough to hold the working set. A compiler technique, called array partition and privatization (or APP), is proposed to correct this problem. The APP technique partitions a shared array into sections, one for each computing thread, and then maps each section to the private stack of the corresponding thread. Interarray discontiguity is thus removed and the cache performance improved.This paper presents a compiler algorithm for APP and preliminary experimental results based on four benchmark programs running on an SGI Origin 2000 multiprocessor.
INDEX TERMS
Optimizing compilers, shared-memory multiprocessors, caches, set conflicts, array privatization
CITATION
Zhiyuan Li, "Reducing Cache Conflicts by Partitioning and Privatizing Shared Arrays", Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques, vol. 00, no. , pp. 183, 1999, doi:10.1109/PACT.1999.807525
99 ms
(Ver 3.3 (11022016))