Identifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures 1

Size: px
Start display at page:

Download "Identifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures 1"

Transcription

1 Identifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures 1 Yuan-Shin Hwang Department of Computer Science National Taiwan Ocean University Keelung Taiwan shin@cs.ntou.edu.tw Abstract Pointer analysis has been an active research field in recent years. Combining pointer analysis and dependence analysis can identify parallelism in programs with pointers or dynamic pointer-linked data structures. After parallelism is identified, programs can be parallelized and then executed on parallel multiprocessor systems to achieve good performance. The compiler analysis techniques that have been proposed so far can only analyze parallelism in the traversal operations in programs with dynamic pointer-linked data structures. As a result, only the traversal operations will be parallelized while the construction operations will be executed in sequential. Although the traversal phase of such programs, which usually account for over 90% of total execution times, can be parallelized, the rest of programs that accounts for less than 10% will dominate the execution on multiprocessor systems. This paper presents a technique that can identify parallelism in the construction phase of programs with pointer-linked data structures. Experiment results show this approach can parallelize the construction phase of such programs and achieve good speedup on multiprocessor systems. Keywords: Parallelizing Compilers, Pointer Analysis, Multiprocessor Systems, Pointer-linked Data Structures Introduction Dependence analysis with the help of pointer analysis [1,3,4,5,13,16,18,19,20] or shape analysis [2,6,15,17] is the key technique to identify parallelism with dynamic pointer-lined data structures. There have been dependence analysis techniques proposed to analyze such programs [7,9,10,11,14]. These techniques can identify parallelism in programs with tree-like structures. However, they cannot recognize parallelism in programs with cyclic pointer-linked data structures even though the traversal patterns of these programs exhibit high degree of parallelism. A recent algorithm has been proposed to identify the traversal patterns of programs with cyclic graphs, isolate the statements that traverse or define the links of traversal patterns, and then analyze the data dependence and shape information of these statements [12]. Consequently, this approach can identify parallelism based on data dependence and shape analysis on programs even with cyclic graphs. This approach has been applied to identify parallelism in the traversal phase of some well-known application programs with cyclic graphs and obtain over 90% parallelism coverage [8] of these programs. However, this approach can only analyze dependence of the traversal phase of programs with cyclic graphs, but not the graph construction phase, which accounts for less than 10% 1 This research was supported in part by NSC grant NSC E T 1

2 of execution times. Although the part of programs with cyclic graphs that accounts for over 90% of execution times can be parallelized, the rest 10% will be executed sequentially and consequently will dominate the execution on multiprocessor systems. In order to achieve good scalability, the graph construction phase of such programs must be parallelized as well. This work intends to develop a technique to identify parallelism in the graph construction phase of programs with cyclic graphs. Algorithm The required condition of identifying parallelism in construction operations of programs with cyclic dynamic pointer-linked data structures is that the traversal operations of the programs on the constructed data structures are independent. In other words, if traversal operations on pointer-linked data structures in a program can be executed in any order, it implies the nodes of the traversed data structures can be connected in any order. Parallelism in construction operations exists if this condition holds, i.e. nodes of pointer-linked data structures in the program can be connected in any order. One typical example is the list representation of adjacent matrixes, each of which can represented by a list of lists. The lists of such a list of lists can be built independently. This proposal develops the following compiler analysis technique to detect such parallelism. The technique can be divided into the following steps: 1. Compute definition-use chains Each traversal operation corresponds to a read reference on pointer-linked data structures, while each construction operation corresponds to a write reference. Since a read reference is commonly called as a use and a write reference is called as a definition, the relationships between construction operations and traversal operations of dynamic pointer-linked data structures can be represented by definition-use chains of the data structures. 2. Recognize parallelism in traversal operations If there is no parallelism in traversal operations, then it means the traversal operations must follow certain orders and consequently the construction operations of such pointer-linked data structures have to be executed following the sequential order. On the other hand, if traversal operations are independent, it means the traversal operations on data structures can be executed in any order. Therefore, the construction operations of the pointer-linked data structures that are accessed by independent traversal operations might be able to be executed in any order. In other words, parallelism might exist in construction operations of these data structures. 3. Identify parallelism in construction operations For each construction operation of dynamic pointer-linked data structures, compilers will have to examine all corresponding traversal operations on the constructed data structures. If any of the corresponding traversal operations are not independent, then construction operations will be assumed to be sequential. Otherwise, further analysis will be performed to identify parallelism in construction operations. The construction phase of dynamic pointer-linked data structures can be executed in parallel if the following two conditions are met: The pointer-linked data structures built by the construction phase are accessed only by traversal operations that can be executed in parallel. The pointer-linked data structures are not modified between the construction phase and the traversal phase. 2

3 Experimental Results Two benchmark programs EM3D and Moldyn are analyzed and parallelized. They are executed on the SGI Power Challenge 2 from 1 to 10 processors. The experimental results are compared as follows. EM3D When the construction phase is not parallelized, the construction phase takes over 43% of total execution time on 10 processors and the speedup is about 4.56: Construction Computation Total However, if the construction phase is parallelized, the construction phase takes only 10.5% of the total execution time on 10 processors and the speedup achieves 7.15: Construction Computation Total The above two tables are obtained by running EM3D for 100 iterations with 1024 E nodes and 1024 H nodes, each of which has a neighbor list of length 50. Moldyn A lattice of 9?9?9 will be simulated for 150 iterations. Neighbor list will be regenerated every 30 iterations with a cutoff distance of 6. When the construction phase is executed sequentially, the construction phase takes over 31% of total execution time on 10 processors and the speedup is about 6.45: Construction Total When the construction phase is parallelized, it only takes about 6% of total execution time and the speedup achieves 9.03 on 10 processors:. Construction Total Conclusions 2 Located at the National Center for High-Performance Computing 3

4 The technique developed can not only identify independent traversal operations in programs with dynamic pointer-linked data structures, but also detect parallelism in the construction phase of such programs. If only the first form of parallelism is identified, the parallelized programs would not scale well since the sequential part will dominate the execution times on multiprocessor systems. The technique proposed in the paper solves this problem by identifying the second form of parallelism. Once the construction phase of the programs with dynamic pointer-linked data structures are parallelized as well, good speedup can be achieved, as shown in the above tables. The technique proposed in this paper can be applied to scientific computational programs to achieve high performance on parallel multiprocessor systems since they usually build pointer-linked data structures to represent adjacent matrices, which in turn describe the interactions of simulated objects. Michael Burke, Paul Carini, Jong-Deok Choi, and Michael Hind. Flow-insensitive interprocedural alias analysis in the presence of pointers. Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing}, Columbus, Ohio, August 1995 David R. Chase, Mark Wegman, and F.~Kenneth Zadeck. Analysis of pointers and structures. SIGPLAN Notices}, 25(6): , June Proceedings of the ACM SIGPLAN '90 Conference on Programming Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages , Charleston, South Carolina, January 1993 Alain Deutsch. Interprocedural May-Alias analysis for pointers: Beyond k-limiting. SIGPLAN Notices, 29(6): , June Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation Maryam Emami, Rakesh Ghiya, and Laurie~J. Hendren. Context-sensitive interprocedural Points-to analysis in the presence of function pointers. SIGPLAN Notices, 29(6): , June Proceedings of the ACM SIGPLAN '94 Conference on Programming Rakesh Ghiya and Laurie~J. Hendren. Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. Conference Record of POPL '96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1--15, St. Petersburg Beach, Florida, January 1996 Vincent A. Guarna, Jr. A technique for analyzing pointer and structure references in parallel restructuring compilers. Proceedings of 1988 International Conference on Parallel Processing, Volume 2, pages , August 1988 Mary W. Hall, Saman P. Amarasinghe, Brian R. Murphy, Shih-Wei Liao, and Monica S. Lam. Detecting coarse - grain parallelism using an interprocedural parallelizing compiler. In Proceedings of Supercomputing'95, December 1995 Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990 Susan Horwitz, Phil Pfeiffer, and Thomas Reps. Dependence analysis for pointer variables. SIGPLAN Notices, 24(7):28--40, July Proceedings of the ACM SIGPLAN '89 Conference on Programming Joseph Hummel, Laurie J. Hendren, and Alexandru Nicolau. A general data dependence test for dynamic, pointer-based data structures. SIGPLAN Notices, 29(6): , June Proceedings of the ACM SIGPLAN '94 Conference on Programming Yuan-Shin Hwang. Interprocedural Definition-Use Chains of Dynamic Recursive Data Structure. PhD thesis, University of Maryland, 1998 William Landi and Barbara G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. SIGPLAN Notices, 27(7): , July Proceedings of the ACM SIGPLAN '92 Conference on Programming James R. Larus and Paul N. Hilfinger. Detecting conflicts between structure accesses. SIGPLAN Notices, 23(7):21--34, July Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation J. Plevyak, A. Chien, and V. Karamcheti. Analysis of dynamic structures for efficient parallel execution. Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing, pages 4

5 37--56, Portland, Oregon, August Lecture Notes in Computer Science, Vol. 768, Springer Verlag Erik Ruf. Context-insensitive alias analysis reconsidered. SIGPLAN Notices, 30(6):13--22, June Proceedings of the ACM SIGPLAN '95 Conference on Programming Mooly Sagiv, Thomas Reps, and Reinhard Wilhelm. Solving shape-analysis problems in languages with destructive updating. Conference Record of POPL '96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages , St. Petersburg Beach, Florida, January 1996 Marc Shapiro and Susan Horwitz. Fast and accurate flow-insensitive points-to analysis. Conference Record of 24nd ACM Symposium on Principles of Programming Languages, pages 1--14, Paris, France, January 1997 Bjarne Steensgaard. Points-to analysis in almost linear time. Conference Record of POPL '96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages , St. Petersburg Beach, Florida, January 1996 Robert P. Wilson and Monica S. Lam. Efficient context-sensitive pointer analysis for C programs. SIGPLAN Notices, 30(6):1--12, June Proceedings of the ACM SIGPLAN '95 Conference on Programming 5

p q r int (*funcptr)(); SUB2() {... SUB3() {... } /* End SUB3 */ SUB1() {... c1: SUB3();... c3 c1 c2: SUB3();... } /* End SUB2 */ ...

p q r int (*funcptr)(); SUB2() {... SUB3() {... } /* End SUB3 */ SUB1() {... c1: SUB3();... c3 c1 c2: SUB3();... } /* End SUB2 */ ... Lecture Notes in Computer Science, 892, Springer-Verlag, 1995 Proceedings from the 7th International Workshop on Languages and Compilers for Parallel Computing Flow-Insensitive Interprocedural Alias Analysis

More information

Increasing the Accuracy of Shape and Safety Analysis of Pointer-based Codes

Increasing the Accuracy of Shape and Safety Analysis of Pointer-based Codes Increasing the Accuracy of Shape and Safety Analysis of Pointer-based Codes Pedro C. Diniz University of Southern California / Information Sciences Institute 4676 Admiralty Way, Suite 11 Marina del Rey,

More information

Dynamic Points-To Sets: A Comparison with Static Analyses and Potential Applications in Program Understanding and Optimization

Dynamic Points-To Sets: A Comparison with Static Analyses and Potential Applications in Program Understanding and Optimization Dynamic Points-To Sets: A Comparison with Static Analyses and Potential Applications in Program Understanding and Optimization Markus Mock *, Manuvir Das +, Craig Chambers *, and Susan J. Eggers * * Department

More information

Analysis of Pointers and Structures

Analysis of Pointers and Structures RETROSPECTIVE: Analysis of Pointers and Structures David Chase, Mark Wegman, and Ken Zadeck chase@naturalbridge.com, zadeck@naturalbridge.com, wegman@us.ibm.com Historically our paper was important because

More information

Pointer Analysis: Haven t We Solved This Problem Yet?

Pointer Analysis: Haven t We Solved This Problem Yet? Pointer Analysis: Haven t We Solved This Problem Yet? Michael Hind IBM Watson Research Center 30 Saw Mill River Road Hawthorne, New York 10532 hind@watson.ibm.com ABSTRACT During the past twenty-one years,

More information

Building a Bridge between Pointer Aliases and Program Dependences *

Building a Bridge between Pointer Aliases and Program Dependences * Building a Bridge between Pointer Aliases and Program Dependences * John L. Ross 1 and Mooly Sagiv 2 1 University of Chicago, e-mail: johnross9 2 Tel-Aviv University, e-malh sagiv~math.tau, ac.il Abstract.

More information

Key data. X nchild link next

Key data. X nchild link next Increasing the Accuracy of Shape and Safety Analysis of Pointer-based Codes Pedro C. Diniz University of Southern California / Information Sciences Institute 4676 Admiralty Way, Suite 11 Marina del Rey,

More information

Iteration Disambiguation for Parallelism Identification in Time-Sliced Applications

Iteration Disambiguation for Parallelism Identification in Time-Sliced Applications Iteration Disambiguation for Parallelism Identification in Time-Sliced Applications Shane Ryoo, Christopher I. Rodrigues, and Wen-mei W. Hwu Center for Reliable and High-Performance Computing Department

More information

Interprocedural Dependence Analysis and Parallelization

Interprocedural Dependence Analysis and Parallelization RETROSPECTIVE: Interprocedural Dependence Analysis and Parallelization Michael G Burke IBM T.J. Watson Research Labs P.O. Box 704 Yorktown Heights, NY 10598 USA mgburke@us.ibm.com Ron K. Cytron Department

More information

cies. IEEE Trans. Comput., 38, 5 (May),

cies. IEEE Trans. Comput., 38, 5 (May), cies. IEEE Trans. Comput., 38, 5 (May), 663-678. [33] M. D. Smith. Support for speculative execution in high-performance processors. PhD thesis, Stanford University, November 1992. [34] D. W. Wall. Limits

More information

Generalized Iteration Space and the. Parallelization of Symbolic Programs. (Extended Abstract) Luddy Harrison. October 15, 1991.

Generalized Iteration Space and the. Parallelization of Symbolic Programs. (Extended Abstract) Luddy Harrison. October 15, 1991. Generalized Iteration Space and the Parallelization of Symbolic Programs (Extended Abstract) Luddy Harrison October 15, 1991 Abstract A large body of literature has developed concerning the automatic parallelization

More information

Parallelization System. Abstract. We present an overview of our interprocedural analysis system,

Parallelization System. Abstract. We present an overview of our interprocedural analysis system, Overview of an Interprocedural Automatic Parallelization System Mary W. Hall Brian R. Murphy y Saman P. Amarasinghe y Shih-Wei Liao y Monica S. Lam y Abstract We present an overview of our interprocedural

More information

Combining Interprocedural Pointer Analysis

Combining Interprocedural Pointer Analysis RC 21532 (96749) 3/17/99 Computer Science IBM Research Report Combining Interprocedural Pointer Analysis and Conditional Constant Propagation Anthony Pioli Forman Interactive 134 5th Ave New York, NY 10011

More information

The Limits of Alias Analysis for Scalar Optimizations

The Limits of Alias Analysis for Scalar Optimizations The Limits of Alias Analysis for Scalar Optimizations ½ Rezaul A. Chowdhury ½, Peter Djeu ½, Brendon Cahoon ¾, James H. Burrill, and Kathryn S. McKinley ½ Department of Computer Sciences, University of

More information

We present practical approximation methods for computing and representing interprocedural

We present practical approximation methods for computing and representing interprocedural Interprocedural Pointer Alias Analysis MICHAEL HIND, MICHAEL BURKE, PAUL CARINI, and JONG-DEOK CHOI IBM Thomas J. Watson Research Center We present practical approximation methods for computing and representing

More information

ALIASES AND THEIR EFFECT ON DATA DEPENDENCY ANALYSIS

ALIASES AND THEIR EFFECT ON DATA DEPENDENCY ANALYSIS Malaysian Journal of Computer Science, Vol. 10 No. 2, December 1997, pp. 45-50 ALIASES AND THEIR EFFECT ON DATA DEPENDENCY ANALYSIS R. Parimaladevi and R. K. Subramanian School of Computer Sciences Universiti

More information

Lecture 5. Data Flow Analysis

Lecture 5. Data Flow Analysis Lecture 5. Data Flow Analysis Wei Le 2014.10 Abstraction-based Analysis dataflow analysis: combines model checking s fix point engine with abstract interpretation of data values abstract interpretation:

More information

Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages

Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages Barbara G. Ryder Division of Computer and Information Sciences Rutgers University New Brunswick, New Jersey 08903

More information

Lecture 27. Pros and Cons of Pointers. Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis

Lecture 27. Pros and Cons of Pointers. Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis Pros and Cons of Pointers Lecture 27 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis Many procedural languages have pointers

More information

Lecture 20 Pointer Analysis

Lecture 20 Pointer Analysis Lecture 20 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis (Slide content courtesy of Greg Steffan, U. of Toronto) 15-745:

More information

Program Analysis: References and reading material 2008

Program Analysis: References and reading material 2008 Program Analysis: References and reading material 2008 Ashok Sreenivas 1 Overview Text books for program analysis, data flow analysis. Papers for abstract interpretation, inter-procedural analysis, some

More information

Type-Based Alias Analysis*

Type-Based Alias Analysis* Type-Based Alias Analysis* Amer Diwan Kathryn S. McKinley J. Eliot B. Moss Department of Computer Science Department of Computer Science Stanford University, Stanford, CA 94305 University of Massachusetts,

More information

Unified Analysis of Array and Object References in Strongly Typed Languages

Unified Analysis of Array and Object References in Strongly Typed Languages Unified Analysis of Array and Object References in Strongly Typed Languages Stephen Fink 1, Kathleen Knobe 2,andVivekSarkar 1 1 IBM Thomas J. Watson Research Center P. O. Box 704, Yorktown Heights, NY

More information

Program Slicing in the Presence of Pointers

Program Slicing in the Presence of Pointers Program Slicing in the Presence of Pointers James R. Lyle David Binkley jimmy@sst.ncsl.nist.gov binkley@sst.ncsl.nist.gov U.S. Depar tment of Commerce Technology Administration National Institute of Standards

More information

Alias Analysis. Advanced Topics. What is pointer analysis? Last Time

Alias Analysis. Advanced Topics. What is pointer analysis? Last Time Advanced Topics Last Time Experimental Methodology Today What s a managed language? Alias Analysis - dealing with pointers Focus on statically typed managed languages Method invocation resolution Alias

More information

Detecting Read-Only Methods in Java

Detecting Read-Only Methods in Java Detecting Read-Only Methods in Java Jeff Bogda Department of Computer Science University of California Santa Barbara, CA 93106 bogda@cs.ucsb.edu Abstract. One typically defines a read-only method as a

More information

Lecture 16 Pointer Analysis

Lecture 16 Pointer Analysis Pros and Cons of Pointers Lecture 16 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis Many procedural languages have pointers

More information

Evaluating a Demand Driven Technique for Call Graph Construction

Evaluating a Demand Driven Technique for Call Graph Construction Evaluating a Demand Driven Technique for Call Graph Construction Gagan Agrawal 1,JinqianLi 2, and Qi Su 2 1 Department of Computer and Information Sciences, Ohio State University Columbus, OH 43210 agrawal@cis.ohio-state.edu

More information

Lecture 14 Pointer Analysis

Lecture 14 Pointer Analysis Lecture 14 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis [ALSU 12.4, 12.6-12.7] Phillip B. Gibbons 15-745: Pointer Analysis

More information

Interprocedural Symbolic Range Propagation for Optimizing Compilers

Interprocedural Symbolic Range Propagation for Optimizing Compilers Interprocedural Symbolic Range Propagation for Optimizing Compilers Hansang Bae and Rudolf Eigenmann School of Electrical and Computer Engineering Purdue University, West Lafayette, IN 47907 {baeh,eigenman}@purdue.edu

More information

Chapter 1: Interprocedural Parallelization Analysis: A Case Study. Abstract

Chapter 1: Interprocedural Parallelization Analysis: A Case Study. Abstract Chapter 1: Interprocedural Parallelization Analysis: A Case Study Mary W. Hall Brian R. Murphy Saman P. Amarasinghe Abstract We present an overview of our interprocedural analysis system, which applies

More information

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com

More information

Unrolling Loops Containing Task Parallelism

Unrolling Loops Containing Task Parallelism Unrolling Loops Containing Task Parallelism Roger Ferrer 1, Alejandro Duran 1, Xavier Martorell 1,2, and Eduard Ayguadé 1,2 1 Barcelona Supercomputing Center Nexus II, Jordi Girona, 29, Barcelona, Spain

More information

Design-Driven Compilation

Design-Driven Compilation Design-Driven Compilation Radu Rugina and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {rugina, rinard@lcs.mit.edu Abstract. This paper introduces

More information

Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages. Outline

Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages. Outline Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ Research supported,

More information

Program Slicing in the Presence of Pointers (Extended Abstract)

Program Slicing in the Presence of Pointers (Extended Abstract) Program Slicing in the Presence of Pointers (Extended Abstract) James R. Lyle National Institute of Standards and Technology jimmy@swe.ncsl.nist.gov David Binkley Loyola College in Maryland National Institute

More information

Analysis of Object-oriented Programming Languages

Analysis of Object-oriented Programming Languages Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ OOAnalysis, Dagstuhl 2/03, BG Ryder 1 Outline Why

More information

Static Analysis of Accessed Regions in Recursive Data Structures

Static Analysis of Accessed Regions in Recursive Data Structures Static Analysis of Accessed Regions in Recursive Data Structures Stephen Chong and Radu Rugina Computer Science Department Cornell University Ithaca, NY 14853 schong,rugina @cs.cornell.edu Abstract. This

More information

Estimating the Impact of Scalable Pointer Analysis on Optimization

Estimating the Impact of Scalable Pointer Analysis on Optimization Estimating the Impact of Scalable Pointer Analysis on Optimization Manuvir Das 1, Ben Liblit 2,ManuelFähndrich 1,andJakobRehof 1 1 Microsoft Research {manuvir,maf,rehof}@microsoft.com 2 EECS Department,

More information

CS Advanced Compiler Design Course Project

CS Advanced Compiler Design Course Project CS 744 - Advanced Compiler Design Course Project Timeline: Brief project choice e-mail due May 17 Project proposal due May 31 Progress report e-mail due June 23 Presentations approximately July 19, 21

More information

UMIACS-TR December, CS-TR-3192 Revised April, William Pugh. Dept. of Computer Science. Univ. of Maryland, College Park, MD 20742

UMIACS-TR December, CS-TR-3192 Revised April, William Pugh. Dept. of Computer Science. Univ. of Maryland, College Park, MD 20742 UMIACS-TR-93-133 December, 1992 CS-TR-3192 Revised April, 1993 Denitions of Dependence Distance William Pugh Institute for Advanced Computer Studies Dept. of Computer Science Univ. of Maryland, College

More information

Programmer Specified Pointer Independence

Programmer Specified Pointer Independence Programmer Specified Pointer Independence David Koes Mihai Budiu Girish Venkataramani Seth Copen Goldstein April 14, 2003 CMU-CS-03-128 School of Computer Science Carnegie Mellon University Pittsburgh,

More information

Publications related to Chez Scheme

Publications related to Chez Scheme Publications related to Chez Scheme [1] Andrew W. Keep and R. Kent Dybvig. Automatic cross-library optimization. In Scheme 2013: Workshop on Scheme and Functional Programming, 2013. Describes how Chez

More information

Heap Analysis in the Presence of Collection Libraries

Heap Analysis in the Presence of Collection Libraries Heap Analysis in the Presence of Collection Libraries Unified Memory Analysis: Analyzing Collections Mark Marron, Darko Stefanovic, Manuel Hermenegildo, and Deepak Kapur University of New Mexico Albuquerque,

More information

A Practical MHP Information Analysis for Concurrent Java Programs

A Practical MHP Information Analysis for Concurrent Java Programs McGill University School of Computer Science Sable Research Group A Practical MHP Information Analysis for Concurrent Java Programs Sable Technical Report No. 2004-03 Lin Li and Clark Verbrugge June 4,

More information

Isolating Failure-Inducing Thread Schedules

Isolating Failure-Inducing Thread Schedules Isolating Failure-Inducing Thread Schedules by Jong-Deok Choi - IBM T.J. Watson Research Center and Andreas Zeller - Saarland University Marlene Hochrieser FMV - Institute for Formal Models and Verification

More information

Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis

Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis JONG-DEOK CHOI, MANISH GUPTA, MAURICIO J. SERRANO, VUGRANAM C. SREEDHAR and SAMUEL P. MIDKIFF This article presents an

More information

Lightweight Barrier-Based Parallelization Support for Non-Cache-Coherent MPSoC Platforms

Lightweight Barrier-Based Parallelization Support for Non-Cache-Coherent MPSoC Platforms Lightweight Barrier-Based Parallelization Support for Non-Cache-Coherent MPSoC Platforms Andrea Marongiu DEIS University of Bologna Viale Risorgimento 2 40133 Bologna amarongiu@deis.unibo.it Luca Benini

More information

Efficient Flow-Sensitive Interprocedural Data-Flow Analysis in the Presence of Pointers

Efficient Flow-Sensitive Interprocedural Data-Flow Analysis in the Presence of Pointers Efficient Flow-Sensitive Interprocedural Data-Flow Analysis in the Presence of Pointers Teck Bok Tok 1, Samuel Z. Guyer 2, and Calvin Lin 1 1 Department of Computer Sciences, The University of Texas at

More information

Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis

Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis Stack Allocation and Synchronization Optimizations for Java Using Escape Analysis JONG-DEOK CHOI, MANISH GUPTA, MAURICIO J. SERRANO, and VUGRANAM C. SREEDHAR IBM SAMUEL P. MIDKIFF Purdue University This

More information

A Practical MHP Information Analysis for Concurrent Java Programs

A Practical MHP Information Analysis for Concurrent Java Programs A Practical MHP Information Analysis for Concurrent Java Programs Lin Li and Clark Verbrugge School of Computer Science, McGill University Montréal, Canada {lli31,clump}@sable.mcgill.ca Abstract. In this

More information

Evaluating High Level Parallel Programming Support for Irregular. Applications in ICC++ (Extended Abstract)

Evaluating High Level Parallel Programming Support for Irregular. Applications in ICC++ (Extended Abstract) Evaluating High Level Parallel Programming Support for Irregular Applications in ICC++ (Extended Abstract) Andrew Chien Julian Dolby Bishwaroop Ganguly Vijay Karamcheti Xingbin Zhang Department of Computer

More information

Data-Flow Based Detection of Loop Bounds

Data-Flow Based Detection of Loop Bounds Data-Flow Based Detection of Loop Bounds Christoph Cullmann and Florian Martin AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany cullmann,florian@absint.com, http://www.absint.com

More information

Proceedings of the MSPLS Spring 98 Workshop

Proceedings of the MSPLS Spring 98 Workshop Proceedings of the MSPLS Spring 98 Workshop Page 1 of 1 Foreword Proceedings of the MSPLS Spring 98 Workshop Saturday, 16 May 1998, Loyola University Chicago, Chicago, IL Gerald Baumgartner(*) and Konstantin

More information

Lightweight Reference Affinity Analysis

Lightweight Reference Affinity Analysis Lightweight Reference Affinity Analysis Xipen Shen*, Yaoqing Gao+, Chen Ding*, and Roch Archambault+ * Computer Science Department University of Rochester, Rochester, NY, USA {xshen,cding}@cs.rochester.edu

More information

alias information. This is one reason why most optimizing compilers do not perform global pointer analysis, and are therefore forced to make conservat

alias information. This is one reason why most optimizing compilers do not perform global pointer analysis, and are therefore forced to make conservat Estimating the Impact of Scalable Pointer Analysis on Optimization Manuvir Das 1, Ben Liblit 2,Manuel Fähndrich 1, and Jakob Rehof 1 1: Microsoft Research 2: EECS Department, UC Berkeley fmanuvir,maf,rehofg@microsoft.com,

More information

Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow

Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Jang-Wu Jo 1 and Byeong-Mo Chang 2 1 Department of Computer Engineering Pusan University of Foreign Studies Pusan

More information

Representation-Independent Program Analysis

Representation-Independent Program Analysis Representation-Independent Program Analysis Michelle Mills Strout Argonne National Laboratory 9700 S. Cass Ave. Argonne, IL 60439 mstrout@mcs.anl.gov John Mellor-Crummey Rice University, Dept. of Computer

More information

Reducing Parallelizing Compilation Time by Removing Redundant Analysis

Reducing Parallelizing Compilation Time by Removing Redundant Analysis Reducing Parallelizing Compilation Time by Removing Redundant Analysis Jixin Han Rina Fujino Ryota Tamura Mamoru Shimaoka Hiroki Mikami Waseda University, Japan {kalfazed,rfujino,r tamura,shimaoka,hiroki}

More information

Symbolic Evaluation of Sums for Parallelising Compilers

Symbolic Evaluation of Sums for Parallelising Compilers Symbolic Evaluation of Sums for Parallelising Compilers Rizos Sakellariou Department of Computer Science University of Manchester Oxford Road Manchester M13 9PL United Kingdom e-mail: rizos@csmanacuk Keywords:

More information

Shape Analysis by Refining on Abstract Evaluation Path 1

Shape Analysis by Refining on Abstract Evaluation Path 1 Electronic Notes in Theoretical Computer Science 207 (2008) 137 151 www.elsevier.com/locate/entcs Shape Analysis by Refining on Abstract Evaluation Path 1 Xiaodong Ma Ji Wang Wei Dong {xd.ma, wj}@nudt.edu.cn

More information

Affine and Unimodular Transformations for Non-Uniform Nested Loops

Affine and Unimodular Transformations for Non-Uniform Nested Loops th WSEAS International Conference on COMPUTERS, Heraklion, Greece, July 3-, 008 Affine and Unimodular Transformations for Non-Uniform Nested Loops FAWZY A. TORKEY, AFAF A. SALAH, NAHED M. EL DESOUKY and

More information

Static Type Determination and Aliasing for C ++ Department of Computer Science. Rutgers University. Hill Center, Busch Campus. Piscataway, NJ 08855

Static Type Determination and Aliasing for C ++ Department of Computer Science. Rutgers University. Hill Center, Busch Campus. Piscataway, NJ 08855 Laboratory of Computer Science Research Technical Report LCSR-TR-250-A, October 1995 Static Type Determination and Aliasing for C ++ Hemant D. Pande Barbara G. Ryder Department of Computer Science Rutgers

More information

OOPLs - call graph construction. Example executed calls

OOPLs - call graph construction. Example executed calls OOPLs - call graph construction Compile-time analysis of reference variables and fields Problem: how to resolve virtual function calls? Need to determine to which objects (or types of objects) a reference

More information

Reference Analyses. VTA - Variable Type Analysis

Reference Analyses. VTA - Variable Type Analysis Reference Analyses Variable Type Analysis for Java Related points-to analyses for C Steengaard Andersen Field-sensitive points-to for Java Object-sensitive points-to for Java Other analysis approaches

More information

Thread-Sensitive Points-to Analysis for Multithreaded Java Programs

Thread-Sensitive Points-to Analysis for Multithreaded Java Programs Thread-Sensitive Points-to Analysis for Multithreaded Java Programs Byeong-Mo Chang 1 and Jong-Deok Choi 2 1 Dept. of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea chang@sookmyung.ac.kr

More information

Runtime Biased Pointer Reuse Analysis and Its Application to Energy Efficiency

Runtime Biased Pointer Reuse Analysis and Its Application to Energy Efficiency Runtime Biased Pointer Reuse Analysis and Its Application to Energy Efficiency Yao Guo, Saurabh Chheda, Csaba Andras Moritz Department of Electrical and Computer Engineering University of Massachusetts,

More information

Solving Shape-Analysis Problems in Languages with Destructive Updating

Solving Shape-Analysis Problems in Languages with Destructive Updating Solving Shape-Analysis Problems in Languages with Destructive Updating MOOLY SAGIV Tel-Aviv University and THOMAS REPS University of Wisconsin and REINHARD WILHELM Universität des Saarlandes This article

More information

The Design of Whole-Program Analysis Tools

The Design of Whole-Program Analysis Tools Copyright 1996 IEEE. Published in the Proceedings of the 18th International Conference on Software Engineering (ICSE-18), March 25-29, 1996, Berlin, Germany. Personal use of this material is permitted.

More information

Alias Analysis. Last time Interprocedural analysis. Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1

Alias Analysis. Last time Interprocedural analysis. Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1 Alias Analysis Last time Interprocedural analysis Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1 Aliasing What is aliasing? When two expressions denote the same mutable

More information

Scalable GPU Graph Traversal!

Scalable GPU Graph Traversal! Scalable GPU Graph Traversal Duane Merrill, Michael Garland, and Andrew Grimshaw PPoPP '12 Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming Benwen Zhang

More information

A Comparison of Relativistic and Reader-Writer Locking Approaches to Shared Data Access

A Comparison of Relativistic and Reader-Writer Locking Approaches to Shared Data Access A Comparison of Relativistic and Reader-Writer Locking Approaches to Shared Data Access Philip W. Howard, Josh Triplett, and Jonathan Walpole Portland State University Abstract. This paper explores the

More information

Preventing Defects. SWE 795, Spring 2017 Software Engineering Environments

Preventing Defects. SWE 795, Spring 2017 Software Engineering Environments Preventing Defects SWE 795, Spring 2017 Software Engineering Environments Today Part 1 (Lecture)(~60 mins) Part 2 (HW3 Checkpoint Presentations)(20 mins) Break! Part 3 (Discussion)(~60 mins) Discussion

More information

CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation

CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation Stéphane Zuckerman Computer Architecture & Parallel Systems Laboratory Electrical & Computer Engineering Dept. University

More information

Control Flow Analysis with SAT Solvers

Control Flow Analysis with SAT Solvers Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is

More information

Advanced Compiler Construction

Advanced Compiler Construction CS 526 Advanced Compiler Construction http://misailo.cs.illinois.edu/courses/cs526 INTERPROCEDURAL ANALYSIS The slides adapted from Vikram Adve So Far Control Flow Analysis Data Flow Analysis Dependence

More information

Disjoint Reachability Analysis

Disjoint Reachability Analysis Institute for Software Research University of California, Irvine Disjoint Reachability Analysis James C. Jenista University of California, Irvine jjenista@uci.edu Yong Hun Eom University of California,

More information

Compiler Support for Speculative Multithreading Architecture with Probabilistic Points-to Analysis

Compiler Support for Speculative Multithreading Architecture with Probabilistic Points-to Analysis Compiler Support for Speculative Multithreading Architecture with Probabilistic Points-to Analysis Peng-Sheng Chen Ming-Yu Hung Yuan-Shin Hwang Roy Dz-Ching Ju Jenq Kuen Lee Department of Computer Science

More information

Lock vs. Lock-free Memory Project proposal

Lock vs. Lock-free Memory Project proposal Lock vs. Lock-free Memory Project proposal Fahad Alduraibi Aws Ahmad Eman Elrifaei Electrical and Computer Engineering Southern Illinois University 1. Introduction The CPU performance development history

More information

Data-Flow Analysis of Program Fragments

Data-Flow Analysis of Program Fragments Data-Flow Analysis of Program Fragments Atanas Rountev 1, Barbara G. Ryder 1, and William Landi 2 1 Department of Computer Science, Rutgers University, Piscataway, NJ 08854, USA {rountev,ryder}@cs.rutgers.edu

More information

task object task queue

task object task queue Optimizations for Parallel Computing Using Data Access Information Martin C. Rinard Department of Computer Science University of California, Santa Barbara Santa Barbara, California 9316 martin@cs.ucsb.edu

More information

Which Pointer Analysis Should I Use?

Which Pointer Analysis Should I Use? Which Pointer Analysis Should I Use? Michael Hind IBM Watson Research Center 30 Saw Mill River Road Hawthorne, NY 10532, USA hind@watson.ibm.com Anthony Pioli Register.com 575 11th Ave New York, NY 10018,

More information

A Bibliography of Publications of Jingling Xue

A Bibliography of Publications of Jingling Xue A Bibliography of Publications of Jingling Xue Jingling Xue Department of Mathematics, Statistics and Computing Science Armidale, NSW 2351 Australia Tel: +61 67 73 3149 FAX: +61 67 73 3312 E-mail: xue@neumann.une.edu.au

More information

Pointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell

Pointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan and Michael Hind Presented by Brian Russell Claim: First nontrivial pointer analysis dealing with all Java language features

More information

DIGITAL SIGNAL PROCESSING AND ITS USAGE

DIGITAL SIGNAL PROCESSING AND ITS USAGE DIGITAL SIGNAL PROCESSING AND ITS USAGE BANOTHU MOHAN RESEARCH SCHOLAR OF OPJS UNIVERSITY ABSTRACT High Performance Computing is not the exclusive domain of computational science. Instead, high computational

More information

Automatic Discovery of Coarse-Grained Parallelism in Media Applications

Automatic Discovery of Coarse-Grained Parallelism in Media Applications Automatic Discovery of Coarse-Grained Parallelism in Media Applications Shane Ryoo, Sain-Zee Ueng, Christopher I. Rodrigues, Robert E. Kidd, Matthew I. Frank, and Wen-mei W. Hwu Center for Reliable and

More information

Flow-Sensitive Pointer Analysis for Millions of Lines of Code

Flow-Sensitive Pointer Analysis for Millions of Lines of Code Flow-Sensitive Pointer Analysis for Millions of Lines of Code Ben Hardekopf University of California, Santa Barbara benh@cs.ucsb.edu Calvin Lin The University of Texas at Austin lin@cs.utexas.edu Abstract

More information

Precise Null Pointer Analysis Through Global Value Numbering

Precise Null Pointer Analysis Through Global Value Numbering Precise Null Pointer Analysis Through Global Value Numbering Ankush Das 1 and Akash Lal 2 1 Carnegie Mellon University, Pittsburgh, PA, USA 2 Microsoft Research, Bangalore, India Abstract. Precise analysis

More information

OoOJava: An Out-of-Order Approach to Parallel Programming

OoOJava: An Out-of-Order Approach to Parallel Programming OoOJava: An Out-of-Order Approach to Parallel Programming James C. Jenista Yong hun Eom Brian Demsky Abstract Developing parallel software using current tools can be challenging. Developers must reason

More information

Analyzing programs with explicit parallelism

Analyzing programs with explicit parallelism Oregon Health & Science University OHSU Digital Commons CSETech June 1991 Analyzing programs with explicit parallelism Harini Srinivasan Michael Wolfe Follow this and additional works at: http://digitalcommons.ohsu.edu/csetech

More information

Pointer Analysis. Yannis Smaragdakis University of Athens George Balatsouras University of Athens

Pointer Analysis. Yannis Smaragdakis University of Athens George Balatsouras University of Athens Pointer Analysis Yannis Smaragdakis University of Athens smaragd@di.uoa.gr George Balatsouras University of Athens gbalats@di.uoa.gr Boston Delft Foundations and Trends R in Programming Languages Published,

More information

Kartik Lakhotia, Rajgopal Kannan, Viktor Prasanna USENIX ATC 18

Kartik Lakhotia, Rajgopal Kannan, Viktor Prasanna USENIX ATC 18 Accelerating PageRank using Partition-Centric Processing Kartik Lakhotia, Rajgopal Kannan, Viktor Prasanna USENIX ATC 18 Outline Introduction Partition-centric Processing Methodology Analytical Evaluation

More information

Experimental Comparison of call string and. functional Approaches to Interprocedural. Analysis? Florian Martin

Experimental Comparison of call string and. functional Approaches to Interprocedural. Analysis? Florian Martin Experimental Comparison of call string and functional Approaches to Interedural Analysis? Florian Martin Universitat des Saarlandes, P.O. Box 151150, 66041 Saarbrucken, martin@cs.uni-sb.de Abstract. The

More information

Alias Analysis of Executable Code. Saumya Debray Robert Muth Matthew Weippert. Department of Computer Science. University of Arizona

Alias Analysis of Executable Code. Saumya Debray Robert Muth Matthew Weippert. Department of Computer Science. University of Arizona Alias Analysis of Executable Code Saumya Debray Robert Muth Matthew Weippert Department of Computer Science University of Arizona Tucson, AZ 85721, U.S.A. fdebray, muth, weippertg@cs.arizona.edu Abstract

More information

An Integrated Synchronization and Consistency Protocol for the Implementation of a High-Level Parallel Programming Language

An Integrated Synchronization and Consistency Protocol for the Implementation of a High-Level Parallel Programming Language An Integrated Synchronization and Consistency Protocol for the Implementation of a High-Level Parallel Programming Language Martin C. Rinard (martin@cs.ucsb.edu) Department of Computer Science University

More information

Lecture Notes on Dataflow Analysis

Lecture Notes on Dataflow Analysis Lecture Notes on Dataflow Analysis 15-411: Compiler Design Frank Pfenning Lecture 5 September 9, 2008 1 Introduction In this lecture we first extend liveness analysis to handle memory references and then

More information

Core Expressions: An Intermediate Representation for Expressions in C

Core Expressions: An Intermediate Representation for Expressions in C Core Expressions: An Intermediate Representation for Expressions in C Maksim Orlovich and Radu Rugina Computer Science Department Cornell University Ithaca, NY 14853 Abstract. The paper presents a simple

More information

Understanding Uncertainty in Static Pointer Analysis

Understanding Uncertainty in Static Pointer Analysis Understanding Uncertainty in Static Pointer Analysis Constantino Goncalves Ribeiro E H U N I V E R S I T Y T O H F R G E D I N B U Master of Philosophy Institute of Computing Systems Architecture School

More information

Single-Pass Generation of Static Single Assignment Form for Structured Languages

Single-Pass Generation of Static Single Assignment Form for Structured Languages 1 Single-Pass Generation of Static Single Assignment Form for Structured Languages MARC M. BRANDIS and HANSPETER MÖSSENBÖCK ETH Zürich, Institute for Computer Systems Over the last few years, static single

More information

Feedback Guided Scheduling of Nested Loops

Feedback Guided Scheduling of Nested Loops Feedback Guided Scheduling of Nested Loops T. L. Freeman 1, D. J. Hancock 1, J. M. Bull 2, and R. W. Ford 1 1 Centre for Novel Computing, University of Manchester, Manchester, M13 9PL, U.K. 2 Edinburgh

More information