Computing Per-Process Summary Side-Effect Information (250KB)

By Tor Jeremiassen and Susan J. Eggers

ABSTRACT

This paper presents a static algorithm, based on standard iterative data-flow techniques, for computing per-process memory references to shared data in coarse-grained parallel programs. The algorithm constructs control flow graphs for families of processes by recognizing predicates used in control statements whose values are invariant relative to any one process, but vary across processes. It is used in conjunction with interprocedural flow-insensitive side-effect analysis techniques to identify data objects accessed by each process. Dynamically allocated objects and descriptors for sections of arrays are incorporated into the general framework.

The motivation for the work was to reduce coherency overhead in shared memory multiprocessors. However, the algorithm can also be applied to local/global memory allocation decisions in distributed systems.

@inproceedings{JeEg92:Workshop,
    author="T.E. Jeremiassen and S.J. Eggers",
    title="Computing Per-Process Summary Side-Effect Information",
    booktitle="Fifth Workshop on Languages and Compilers for Parallelism",
    Editor = {U. Banerjee and D. Gelernter and A. Nicolau and D. Padua},
    month = "August",
    year="1992"
}

pardo@cs.washington.edu