Identifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures 1
|
|
- Bathsheba McCormick
- 6 years ago
- Views:
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 */ ...
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 informationIncreasing 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 informationDynamic 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 informationAnalysis 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 informationPointer 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 informationBuilding 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 informationKey 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 informationIteration 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 informationInterprocedural 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 informationcies. 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 informationGeneralized 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 informationParallelization 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 informationCombining 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 informationThe 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 informationWe 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 informationALIASES 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 informationLecture 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 informationDimensions 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 informationLecture 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 informationLecture 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 informationProgram 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 informationType-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 informationUnified 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 informationProgram 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 informationAlias 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 informationDetecting 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 informationLecture 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 informationEvaluating 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 informationLecture 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 informationInterprocedural 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 informationChapter 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 informationait: 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 informationUnrolling 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 informationDesign-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 informationDimensions 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 informationProgram 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 informationAnalysis 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 informationStatic 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 informationEstimating 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 informationCS 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 informationUMIACS-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 informationProgrammer 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 informationPublications 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 informationHeap 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 informationA 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 informationIsolating 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 informationStack 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 informationLightweight 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 informationEfficient 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 informationStack 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 informationA 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 informationEvaluating 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 informationData-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 informationProceedings 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 informationLightweight 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 informationalias 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 informationConstructing 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 informationRepresentation-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 informationReducing 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 informationSymbolic 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 informationShape 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 informationAffine 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 informationStatic 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 informationOOPLs - 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 informationReference 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 informationThread-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 informationRuntime 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 informationSolving 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 informationThe 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 informationAlias 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 informationScalable 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 informationA 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 informationPreventing 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 informationCPEG 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 informationControl 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 informationAdvanced 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 informationDisjoint 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 informationCompiler 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 informationLock 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 informationData-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 informationtask 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 informationWhich 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 informationA 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 informationPointer 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 informationDIGITAL 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 informationAutomatic 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 informationFlow-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 informationPrecise 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 informationOoOJava: 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 informationAnalyzing 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 informationPointer 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 informationKartik 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 informationExperimental 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 informationAlias 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 informationAn 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 informationLecture 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 informationCore 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 informationUnderstanding 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 informationSingle-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 informationFeedback 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