Automatic bottleneck detection and scaling in virtual time
File(s)
Author(s)
Nair, Reena
Type
Thesis or dissertation
Abstract
This thesis addresses two aspects of parallel software performance engineering. The first concerns the automatic detection of bottlenecks in parallel Linux applications. We present GAPP,
a profiler which identifies serialization bottlenecks by tracing context-switch events in the OS kernel. GAPP is extremely lightweight, requires no program instrumentation and works for a variety of serialization bottlenecks. GAPP has been evaluated using the Parsec3.0 benchmark suite and two large open-source projects: MySQL and Nektar++. The experiments show that GAPP is able to detect a wide range of performance issues, for example arising from synchronization primitives, busy-wait loops, memory operations, thread imbalance and resource contention. It is also able to pinpoint the exact lines of code in the application that correspond to the bottleneck.
The second relates to bottleneck optimization. What performance gain can be expected if the
bottleneck code, or any hardware resource associated with that code, were to be optimised? To support this type of ‘what-if’ experimentation, we present VIRBS, which simulates the effect
of optimizing a particular section of code, by pausing other threads, whenever that code is
executed – a form of virtual-time scaling, where real-time and virtual-time progress at different
rates. The idea is similar to that used in the Coz framework [CB15]. Whilst Coz is samplebased, VIRBS works by statically instrumenting scaled functions to insert delays precisely whenever the bottleneck code is executed, and this can substantially reduce the time taken to conduct a ‘what-if’ experiment.
In developing VIRBS, the objective has been to build and evaluate a prototype implementation
that exhibits Coz-like capabilities, but with reduced overall cost. Experiments with VIRBS has
exposed two weaknesses in Coz’s present implementation, one of which relates to inter-thread synchronization, and which is shared by the prototype implementation of VIRBS. These are described in detail and some potential solutions presented as part of future work.
a profiler which identifies serialization bottlenecks by tracing context-switch events in the OS kernel. GAPP is extremely lightweight, requires no program instrumentation and works for a variety of serialization bottlenecks. GAPP has been evaluated using the Parsec3.0 benchmark suite and two large open-source projects: MySQL and Nektar++. The experiments show that GAPP is able to detect a wide range of performance issues, for example arising from synchronization primitives, busy-wait loops, memory operations, thread imbalance and resource contention. It is also able to pinpoint the exact lines of code in the application that correspond to the bottleneck.
The second relates to bottleneck optimization. What performance gain can be expected if the
bottleneck code, or any hardware resource associated with that code, were to be optimised? To support this type of ‘what-if’ experimentation, we present VIRBS, which simulates the effect
of optimizing a particular section of code, by pausing other threads, whenever that code is
executed – a form of virtual-time scaling, where real-time and virtual-time progress at different
rates. The idea is similar to that used in the Coz framework [CB15]. Whilst Coz is samplebased, VIRBS works by statically instrumenting scaled functions to insert delays precisely whenever the bottleneck code is executed, and this can substantially reduce the time taken to conduct a ‘what-if’ experiment.
In developing VIRBS, the objective has been to build and evaluate a prototype implementation
that exhibits Coz-like capabilities, but with reduced overall cost. Experiments with VIRBS has
exposed two weaknesses in Coz’s present implementation, one of which relates to inter-thread synchronization, and which is shared by the prototype implementation of VIRBS. These are described in detail and some potential solutions presented as part of future work.
Version
Open Access
Date Issued
2020-09
Date Awarded
2021-02
Copyright Statement
Creative Commons Attribution-Non Commercial 4.0 International Licence
Advisor
Field, Anthony
Sponsor
Commonwealth Scholarship Commission
Grant Number
INCS-2016-208
Publisher Department
Computing
Publisher Institution
Imperial College London
Qualification Level
Doctoral
Qualification Name
Doctor of Philosophy (PhD)