Compiler and runtime support for concurrent programming

Gautam Upadhyaya, Purdue University

Abstract

Efficiently using multicore architectures demands an increasing degree of fluency in parallel programming. Current programming tools and techniques are unable to bridge the wide gap between the power of modern computer architectures and the ability of programmers to efficiently harness that power. This thesis shows how the codesign of language, compiler optimizations, and runtime support can enable efficient and correct parallel programming. It does so by providing solutions that facilitate concurrency in each of the dominant programming models. It first describes ASPEN, a language and runtime that addresses the challenges faced by programmers of network services. A SPEN employs a distributed programming model and a novel thread allocator which, taken together, facilitate the programming of servers. Experimental results are presented which demonstrate that servers programmed in A SPEN perform competitively and yet require up to 96% fewer lines of code compared to programs coded in the C programming language. This thesis next introduces a complete tool set for the automatic synchronization of shared memory programs. Using the notion of conflict-serializability as a correctness criterion, it systematically demonstrates how transactional regions can be automatically inferred in such programs. It also introduces a novel data structure, the Projection Conflict Graph, which reduces the computational complexity of the analysis for SPMD programs. In addition, this thesis demonstrates how, by incorporating semantic awareness of concurrent data structures within the compiler, it is possible to generate efficient locksets to ensure the atomic execution of blocks of code in shared memory programs. These concepts are implemented in two tools – T RANS-FINDER and SMARTLOCK. Extensive experimental results, presented in this thesis, demonstrate the efficacy of each tool: the atomic regions generated by TRANSFINDER are never more than 38 lines larger than their equivalent, hand-coded ones, while the locksets generated by SMARTLOCK enable eight thread speedups of up to 5.9 on the benchmarks considered.

Degree

Ph.D.

Advisors

Midkiff, Purdue University.

Subject Area

Computer Engineering

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS