Publication:
Parallel pointer analysis for large-scale software

dc.contributor.advisor Xue, Jingling en_US
dc.contributor.advisor Wu, Hui en_US
dc.contributor.author Su, Yu en_US
dc.date.accessioned 2022-03-22T09:24:37Z
dc.date.available 2022-03-22T09:24:37Z
dc.date.issued 2015 en_US
dc.description.abstract Pointer analysis, a process that statically computes the possible runtime values of a pointer in a program, enables the understanding of program behaviours. It lies in the heart of software engineering and has laid foundations for extensive applications, such as compiler optimisation, software bug detection and program verification. The long existing challenge of the analysis, however, is to improve its efficiency while maintaining high precision, especially when applied to large programs. Parallel platforms, which are prevalent nowadays, provide a great opportunity to enhance the efficiency of pointer analysis. Yet, it is challenging to parallelise this analysis, which is essentially an irregular graph algorithm. In general, pointer analysis comes in two styles: whole-program and demand-driven. Whole-program analysis, which computes the points-to information of all variables in a program, is often formulated as a graph-rewriting problem that makes extensive modifications to data structures representing the graph. Demand-driven analysis, which only targets the variables requested by queries, is solved in terms of a graph traversal problem. This thesis presents the design and implementation of a parallel pointer analysis framework that enables efficient pointer analysis for large-scale software. This framework consists of three parts, each targeting one of today’s most popular parallel platforms, and is implemented with a combination of Java, C++ and CUDA. The first part is a parallel solution to pointer analysis driven by queries, on multi-core CPUs. It has achieved significant speedups over the sequential solution, since a large amount of unnecessary graph traversals have been eliminated by information sharing and query scheduling. The second part is an efficient GPU solution to whole-program pointer analysis. With effective load balancing and reduced redundant computation, it demonstrates considerable speedups over the state-of-the-art GPU implementation. The third part is a heterogeneous CPU-GPU solution to whole-program pointer analysis. It prioritises the distribution of different work-loads to CPU/GPU according to the processing unit’s ability for processing them, and therefore has achieved speedups over the corresponding CPU-only and GPU-only solutions. The effectiveness of each part of the framework is demonstrated via an evaluation with a set of open-source Java/C programs. en_US
dc.identifier.uri http://hdl.handle.net/1959.4/54374
dc.language English
dc.language.iso EN en_US
dc.publisher UNSW, Sydney en_US
dc.rights CC BY-NC-ND 3.0 en_US
dc.rights.uri https://creativecommons.org/licenses/by-nc-nd/3.0/au/ en_US
dc.subject.other Software en_US
dc.subject.other Pointer analysis en_US
dc.subject.other Parallel graph algorithms en_US
dc.subject.other Compilers en_US
dc.subject.other GPGPU en_US
dc.title Parallel pointer analysis for large-scale software en_US
dc.type Thesis en_US
dcterms.accessRights open access
dcterms.rightsHolder Su, Yu
dspace.entity.type Publication en_US
unsw.accessRights.uri https://purl.org/coar/access_right/c_abf2
unsw.identifier.doi https://doi.org/10.26190/unsworks/18164
unsw.relation.faculty Engineering
unsw.relation.originalPublicationAffiliation Su, Yu, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Xue, Jingling, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Wu, Hui, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.school School of Computer Science and Engineering *
unsw.thesis.degreetype PhD Doctorate en_US
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
public version.pdf
Size:
2.74 MB
Format:
application/pdf
Description:
Resource type