1 research outputs found

    Reducing Cache Conflicts by Partitioning and Privatizing Shared Arrays

    No full text
    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. 1. Introduction In recent years, an increasing number of s..
    corecore