Dynamic analysis for concurrency optimisationg

Lead Research Organisation: University of Cambridge
Department Name: Computer Science and Technology

Abstract

Multicore processors are the default for modern computers and leveraging this concurrency
is a key aspect of modern software. Effective use of concurrency can significantly improve
software performance, though the inverse is also true - ineffective use can impair software
performance. This thesis explores the use of Dynamic Analysis for Concurrency Optimisation
(DACO). It argues this field is under-explored, yet represents a substantial opportunity for
improving software performance. A key challenge of DACO, and one that extends beyond
concurrency, is the generation of static changes (e.g. source-code changes) from dynamic
analysis. The gap between the static and dynamic domains is well studied in terms of
using static analysis to improve dynamic analysis efficiency and using dynamic analysis to
confirm static analysis hypothesises (e.g. race-condition detection), however, we argue the
gap is understudied when transitioning from the dynamic to the static domain.
A particular instance this thesis focuses on is the use of dynamic analysis, based on
execution traces, to identify and remove inefficient uses of concurrency. This aims to reduce
the amount of time threads spend sleeping by removing inefficient uses of concurrency. Sleeping threads consume resources without progressing the computation of the program and can have more severe effects in certain cases (such as deadlock via thread starvation).

Publications

10 25 50

Studentship Projects

Project Reference Relationship Related To Start End Student Name
EP/R513180/1 01/10/2018 30/09/2023
2276377 Studentship EP/R513180/1 01/10/2019 30/06/2022 Indigo Orton