Results 1 - 10
of
15
SUIF Explorer: an interactive and interprocedural parallelizer
, 1999
"... The SUIF Explorer is an interactive parallelization tool that is more effective than previous systems in minimizing the number of lines of code that require programmer assistance. First, the interprocedural analyses in the SUIF system is successful in parallelizing many coarse-grain loops, thus mini ..."
Abstract
-
Cited by 55 (5 self)
- Add to MetaCart
The SUIF Explorer is an interactive parallelization tool that is more effective than previous systems in minimizing the number of lines of code that require programmer assistance. First, the interprocedural analyses in the SUIF system is successful in parallelizing many coarse-grain loops, thus minimizing the number of spurious dependences requiring attention. Second, the system uses dynamic execution analyzers to identify those important loops that are likely to be parallelizable. Third, the SUIF Explorer is the first to apply program slicing to aid programmers in interactive parallelization. The system guides the programmer in the parallelization process using a set of sophisticated visualization techniques. This paper demonstrates the effectiveness of the SUIF Explorer with three case studies. The programmer was able to speed up all three programs by examining only a small fraction of the program and privatizing a few variables. 1. Introduction Exploiting coarse-grain parallelism i...
Monotonic Evolution: An Alternative to Induction Variable Substitution for Dependence Analysis
"... We present a new approach to dependence testing in the presence of induction variables. Instead of looking for closed form expressions, our method computes monotonic evolution which captures the direction in which the value of a variable changes. This information is then used in the dependence test ..."
Abstract
-
Cited by 22 (5 self)
- Add to MetaCart
We present a new approach to dependence testing in the presence of induction variables. Instead of looking for closed form expressions, our method computes monotonic evolution which captures the direction in which the value of a variable changes. This information is then used in the dependence test to help determine whether array references are dependence-free. Under this scheme, closed form computation and induction variable substitution can be delayed until after the dependence test and be performed on-demand. To improve computative efficiency, we also propose an optimized (non-iterative) data-flow algorithm to compute evolution. Experimental results show that dependence tests based on evolution information matches the accuracy of that based on closed-form computation (implemented in Polaris), and when no closed form expressions can be calculated, our method is more accurate than that of Polaris.
Automatic Subject Indexing Using An Associative Neural Network
- IN: PROCEEDINGS OF THE 3 RD ACM INTERNATIONAL CONFERENCE ON DIGITAL LIBRARIES (DL’98
, 1998
"... The global growth in popularity of the World Wide Web has been enabled in part by the availability of browser based search tools which in turn have led to an increased demand for indexing techniques and technologies. As the amount of globally accessible information in community repositories grows, i ..."
Abstract
-
Cited by 20 (6 self)
- Add to MetaCart
The global growth in popularity of the World Wide Web has been enabled in part by the availability of browser based search tools which in turn have led to an increased demand for indexing techniques and technologies. As the amount of globally accessible information in community repositories grows, it is no longer cost-effective for such repositories to be indexed by professional indexers who have been trained to be consistent in subject assignment from controlled vocabulary lists. The era of amateur indexers is thus upon us, and the information infrastructure needs to provide support for such indexing if search of the Net is to produce useful results. In this paper
Compiler Optimization of Implicit Reductions for Distributed Memory Multiprocessors
, 1998
"... This paper presents reduction recognition and parallel code generation strategies for distributed-memory multiprocessors. We describe techniques to recognize a broad range of implicit reduction operations, including those involving statements at multiple loop nesting levels and intermixed with condi ..."
Abstract
-
Cited by 19 (2 self)
- Add to MetaCart
This paper presents reduction recognition and parallel code generation strategies for distributed-memory multiprocessors. We describe techniques to recognize a broad range of implicit reduction operations, including those involving statements at multiple loop nesting levels and intermixed with conditional control flow. We introduce two new optimizations: factoring which increases data locality for SUM and PRODUCT reductions, and index encoding which enables a single global communication to accomplish both an extreme value reduction and an extreme value location reduction. We have implemented these techniques in the dHPF compiler for High Performance Fortran (HPF). We evaluate their effectiveness experimentally by compiling several reduction benchmarks with dHPF and two commercial HPF compilers, and comparing the performance of the generated code on an IBM SP2. Our results show that our recognition techniques are more powerful and that our index encoding and factoring optimizations can ...
Effective Automatic Parallelization with Polaris
- International Journal of Parallel Programming
, 1995
"... . The Polaris project has delivered a new parallelizing compiler that overcomes severe limitations of current compilers. While available parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. In contrast, Polaris has prove ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
. The Polaris project has delivered a new parallelizing compiler that overcomes severe limitations of current compilers. While available parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. In contrast, Polaris has proven to speed up real programs significantly beyond the degree achieved by the parallelization tools available on the SGI Challenge machine. The techniques implemented are interprocedural symbolic program analysis, scalar and array privatization, symbolic dependence analysis, and advanced induction and reduction recognition and elimination. We will present preliminary results of this compiler as of Fall 94 and we will describe new techniques for runtime detection of parallelism, which we will implement in the future. 1 Introduction Supporting standard programming languages on any kind of computer system is and has been an important issue in computer science. For parallel machine architectures t...
Induction variable analysis without idiom recognition: Beyond monotonicity
- In Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing
, 2001
"... This work is an extension of the previous induction variable analyses based on monotonic evolution [11]. With the same computational complexity, the new algorithm improves the monotonic evolution-based analysis in two aspects: more accurate dependence testing and the ability to compute closed form e ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
This work is an extension of the previous induction variable analyses based on monotonic evolution [11]. With the same computational complexity, the new algorithm improves the monotonic evolution-based analysis in two aspects: more accurate dependence testing and the ability to compute closed form expressions. The experimental results demonstrate that when dealing with induction variables, dependence tests based on distance intervals are both efficient and effective compared to closed-form based dependence tests. 1 Introduction Dependence analysis is useful to many parallelization and optimization algorithms. To extract dependence information, array subscripts must be compared across statements and loop iterations. However, array subscripts often include variables whose value at each loop iteration is not easily available. An important class of such variables are induction variables. In classical dependence analyses, occurrences of induction variable are often replaced by their closed form expressions. Since most dependence tests handle affine expressions only, this approach only applies to induction variables with affine closed form expressions. To handle more general induction variables, in our previous work, we proposed a dependence test based on a light-weight IV
Idioms in Ovm
"... The need to express important non-Java behaviors confronts the Ovm virtual machine framework no less than any other VM-in-Java project such as JikesRVM[1]. ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
The need to express important non-Java behaviors confronts the Ovm virtual machine framework no less than any other VM-in-Java project such as JikesRVM[1].
Induction variable analysis with delayed abstractions
- In 2005 International Conference on High Performance Embedded Architectures and Compilers
, 2005
"... This paper presents the design of an induction variable analyzer suitable for the analysis of typed, low-level, three address representations in SSA form. At the heart of our analyzer is a new algorithm recognizing scalar evolutions. We define a representation called trees of recurrences that is abl ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
This paper presents the design of an induction variable analyzer suitable for the analysis of typed, low-level, three address representations in SSA form. At the heart of our analyzer is a new algorithm recognizing scalar evolutions. We define a representation called trees of recurrences that is able to capture different levels of abstractions: from the finer level that is a subset of the SSA representation restricted to arithmetic operations on scalar variables, to the coarser levels such as the evolution envelopes that abstract sets of possible evolutions in loops. Unlike previous work, our algorithm tracks induction variables without prior classification of a few evolution patterns: different levels of abstraction can be obtained on demand. The low complexity of the algorithm fits the constraints of a production compiler as illustrated by the evaluation of our implementation on standard benchmark programs. 1
The Design Of An Efficient And Portable Interface Between A Parallelizing Compiler And Its Target Machine
, 1995
"... CONTENTS CHAPTER PAGE 1 INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.1 Motivation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.2 Outline of the Thesis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
CONTENTS CHAPTER PAGE 1 INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.1 Motivation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.2 Outline of the Thesis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2 BACKGROUND : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2.1 The Polaris Parallelizing Compiler : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2.1.1 The advanced techniques : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2.1.2 Reduction recognition : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 2.1.3 The Polaris backend : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2 The SGI Challenge and Its Fortran Compiler : : : : : : : : : : : : : : : : : : : :
Restructuring Programs for High-Speed Computers with Polaris
- In 1996 ICPP Workshop on Challenges for Parallel Processing
, 1996
"... The ability to automatically parallelize standard programming languages results in program portability across a wide range of machine architectures. It is the goal of the Polaris project to develop a new parallelizing compiler that overcomes limitations of current compilers. While current paralleliz ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
The ability to automatically parallelize standard programming languages results in program portability across a wide range of machine architectures. It is the goal of the Polaris project to develop a new parallelizing compiler that overcomes limitations of current compilers. While current parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from whole applications. After a study of application codes, it was concluded that by adding a few new techniques to current compilers, automatic parallelization becomes feasible for a range of whole applications. The techniques needed are interprocedural analysis, scalar and array privatization, symbolic dependence analysis, and advanced induction and reduction recognition and elimination, along with run-time techniques to permit the parallelization of loops with unknown dependence relations.

