2003 · 127 citations · 9 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingCompiler ConstructionData ParallelismParallel Computing SystemsParallel Data StructuresParallel Performance AnalysisShared-memory ParallelismAddress Space MappingCompiler SupportMicroarchitectural Optimization
Unified Parallel C (UPC) is a parallel language that uses a Single Program Multiple Data (SPMD) model of parallelism within a global address space. The global address space is used to simplify programming, especially on applications with irregular data structures that lead to fine-grained sharing between threads. Recent results have shown that the performance of UPC using a commercial compiler is comparable to that of MPI [7]. In this paper we describe a portable open source compiler for UPC. Our goal is to achieve a similar performance while enabling easy porting of the compiler and runtime, and also provide a framework that allows for extensive optimizations. We identify some of the challenges in compiling UPC and use a combination of micro-benchmarks and application kernels to show that our compiler has low overhead for basic operations on shared data and is competitive, and sometimes faster than, the commercial HP compiler. We also investigate several communication optimizations, and show significant benefits by hand-optimizing the generated code.
9
Co-array Fortran for parallel programming
Robert W. Numrich, John Reid · ACM SIGPLAN Fortran Forum · 1998 · 671 citations
Compiler-based prefetching for recursive data structures
Chi-Keung Luk, Todd C. Mowry · 1996 · 399 citations · Full text
UPC Performance and Potential: A NPB Experimental Study
2002 · 119 citations
Titanium Language Reference Manual
Paul Hilfinger, Dan Bonachea, Susan L. Graham et al. · 2001 · 92 citations
An evaluation of current high-performance networks
C.R. Bell, Dan Bonachea, Yannick Cote et al. · 2004 · 83 citations