Abstract:
Distributed memory parallel architectures support a memory model where some memory accesses are local, and thus inexpensive, while other memory accesses are remote, and potentially quite expensive. In order to achieve efficiency on such architectures, we need to reduce remote accesses. This is particularly challenging for applications that use dynamic data structures. In this thesis, I present two compiler techniques to reduce the overhead of remote memory accesses for dynamic data structure based applications: locality techniques and communication optimizations. Locality techniques include a static locality analysis, which statically estimates when an indirect reference via a pointer can be safely assumed to be a local access, and dynamic locality checks, which consists of runtime tests to identify local accesses. Communication techniques include: 1) code movement to issue remote reads earlier and writes later; 2) code transformations to replace repeated/redundant remote accesses with one access; and 3) transformations to block or pipeline a group of remote requests together. Both locality and communication
Citations
|
329
|
Context-sensitive interprocedural points-to analysis in the presence of function pointers
– Enami, Ghiya, et al.
- 1994
|
|
152
|
Is it a Tree, a DAG, or a Cyclic Graph? A shape analysis for heap-directed pointers in C
– Ghiya, Hendren
- 1996
|
|
138
|
Communication Optimization and Code Generation for Distributed Memory
– Amarasinghe, Lam
- 1993
|
|
82
|
Putting pointer analysis to work
– Ghiya, Hendren
- 1998
|
|
81
|
Software Caching and Computation Migration in Olden
– Carlisle, Rogers
- 1995
|
|
52
|
Olden: Parallelizing programs with dynamic data structures on distributed-memory machines
– CARLISLE
- 1996
|
|
45
|
Global communication analysis and optimization
– Chakrabarti, Gupta, et al.
- 1996
|
|
40
|
Taming Control Flow: A Structured Approach to Eliminating GOTO Statements
– Erosa, Hendren
- 1994
|
|
30
|
Interprocedural partial redundancy elimination and its application to distributed memory compilation
– Agrawal, Saltz, et al.
- 1995
|
|
28
|
Latency hiding in message-passing architectures
– Bruening, Giloi, et al.
|
|
26
|
Synchronization transformations for paral-lel computing
– Diniz, Rinard
- 1997
|
|
6
|
Connection Analaysis: A practical interprocedural heap analysis for C
– Ghiya, Hendren
- 1996
|
|
1
|
Supporting shared variables and atomic functions in the earth-c language. Master's thesis
– Ghobrial
- 1997
|