MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Communication optimizations for parallel C programs (1998) [21 citations — 1 self]

Download:
Download as a PDF | Download as a PS
by Yingchun Zhu, Yingchun Zhu, Laurie J. Hendren, Laurie J. Hendren
In Proceedings of the SIGPLAN '98 Conference on Program Language Design and Implementation
http://www.sable.mcgill.ca/~hendren/ftp/ying/jpdc99.ps.gz
Add To MetaCart

Abstract:

This paper presents algorithms for reducing the communication overhead for parallel C programs that use dynamically-allocated data structures. The framework consists of an analysis phase called possible-placement analysis, and a transformation phase called communication selection. The fundamental idea of possible-placement analysis is to find all possible points for insertion of remote memory operations. Remote reads are propagated upwards, whereas remote writes are propagated downwards. Based on the results of the possible-placement analysis, the communication selection transformation selects the "best " place for inserting the communication, and determines if pipelining or blocking of communication should be performed. The framework has been implemented in the EARTH-McCAT optimizing C compiler, and experimental results are presented for five pointer-intensive benchmarks running on the EARTH-MANNA distributed-memory parallel processor. These experiments show that the communication optimization can provide performance improvements of up to 16 % over the unoptimized benchmarks.

Citations

329 Context-sensitive interprocedural points-to analysis in the presence of function pointers – Enami, Ghiya, et al. - 1994
165 Compiler-based prefetching for recursive data structures – Luk, Mowry - 1996
138 Communication Optimization and Code Generation for Distributed Memory – Amarasinghe, Lam - 1993
133 Supporting dynamic data structures on distributed-memory machines – Rogers, Carlisle, et al. - 1995
102 Optimal code motion: Theory and practice – Knoop, RĂ¼thing, et al. - 1994
82 Putting pointer analysis to work – Ghiya, Hendren - 1998
81 Software Caching and Computation Migration in Olden – Carlisle, Rogers - 1995
62 Give-N-Take: A balanced code placement framework – Hanxleden, Kennedy - 1994
52 Olden: Parallelizing programs with dynamic data structures on distributed-memory machines – CARLISLE - 1996
46 Polling Watchdog: Combining polling and interrupts for efficient message handling – Maquelin, Gao, et al. - 1996
45 Global communication analysis and optimization – Chakrabarti, Gupta, et al. - 1996
45 A study of the EARTH-MANNA multithreaded system – Hum, Maquelin, 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.
28 Optimizing parallel programs with explicit synchronization – Krishnamurthy, Yelick - 1995
27 Compiling C for the EARTH multithreaded architecture – Hendren, Tang, et al. - 1997
26 Synchronization transformations for paral-lel computing – Diniz, Rinard - 1997
18 An analysis framework for the McCAT compiler – Sridharan - 1992
15 Heap analysis and optimizations for threaded programs – Tang, Ghiya, et al. - 1997
8 Locality analysis for parallel C programs – Zhu, Hendren - 1997