Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
A practical algorithm for exact array dependence analysis
Communications of the ACM
Compilation techniques for sparse matrix computations
ICS '93 Proceedings of the 7th international conference on Supercomputing
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Avoiding conditional branches by code replication
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Gated SSA-based demand-driven symbolic analysis for parallelizing compilers
ICS '95 Proceedings of the 9th international conference on Supercomputing
Interprocedural conditional branch elimination
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Data-centric multi-level blocking
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
The virtual microscope
Using integer sets for data-parallel program analysis and optimization
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A global communication optimization technique based on data-flow analysis and linear algebra
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling object-oriented data intensive applications
Proceedings of the 14th international conference on Supercomputing
Next-generation generic programming and its application to sparse matrix computations
Proceedings of the 14th international conference on Supercomputing
IEEE Transactions on Parallel and Distributed Systems
Global optimization by suppression of partial redundancies
Communications of the ACM
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Infrastructure for Building Parallel Database Systems for Multi-Dimensional Data
IPPS '99/SPDP '99 Proceedings of the 13th International Symposium on Parallel Processing and the 10th Symposium on Parallel and Distributed Processing
Demand-Driven, Symbolic Range Propagation
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
Compiler and Runtime Analysis for Efficient Communication in Data Intensive Applications
Proceedings of the 2001 International Conference on Parallel Architectures and Compilation Techniques
Compiler support for out-of-core arrays on parallel machines
FRONTIERS '95 Proceedings of the Fifth Symposium on the Frontiers of Massively Parallel Computation (Frontiers'95)
Automatic Parallelization of Recursive Procedures
PACT '99 Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques
Compiler support for efficient processing of XML datasets
ICS '03 Proceedings of the 17th annual international conference on Supercomputing
Data Centric Transformations on Non-Integer Iteration Spaces
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
Supporting SQL-3 aggregations on grid-based data repositories
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Hi-index | 0.00 |
Processing and analyzing large volumes of data plays an increasingly important role in many domains of scientific research. The complexity and irregularity of datasets in many domains make the task of developing such processing applications tedious and error-prone.We propose use of high-level abstractions for hiding the irregularities in these datasets and enabling rapid development of correct data processing applications. We present two execution strategies and a set of compiler analysis techniques for obtaining high performance from applications written using our proposed high-level abstractions. Our execution strategies achieve high locality in disk accesses. Once a disk block is read from the disk, all iterations that access any of the elements from this disk block are performed. To support our execution strategies and improve the performance, we have developed static analysis techniques for: 1) computing the set of iterations that access a particular right-hand-side element, 2) generating a function that can be applied to the meta-data associated with each disk block, for determining if that disk block needs to be read, and 3) performing code hoisting of conditionals.We present experimental results from a prototype compiler implementing our techniques to demonstrate the effectiveness of our approach.