Compiler-driven data layout transformations for network applications
View/ Open
Date
25/06/2012Author
Fenacci, Damon
Metadata
Abstract
This work approaches the little studied topic of compiler optimisations directed to
network applications.
It starts by investigating if there exist any fundamental differences between application
domains that justify the development and tuning of domain-specific compiler optimisations.
It shows an automated approach that is capable of identifying domain-specific
workload characterisations and presenting them in a readily interpretable format based
on decision trees. The generated workload profiles summarise key resource utilisation
issues and enable compiler engineers to address the highlighted bottlenecks.
By applying this methodology to data intensive network infrastructure application it
shows that data organisation is the key obstacle to overcome in order to achieve high
performance.
It therefore proposes and evaluates three specialised data transformations (structure
splitting, array regrouping, and software caching) against the industrial EEMBC networking
benchmarks and real-world data sets. It also demonstrates on one hand that
speedups of up to 2.62 can be achieved, but on the other that no single solution performs
equally well across different network traffic scenarios.
Hence, to address this issue, an adaptive software caching scheme for high frequency
route lookup operations is introduced and its effectiveness evaluated one more time
against EEMBC networking benchmarks and real-world data sets achieving speedups
of up to 3.30 and 2.27. The results clearly demonstrate that adaptive data organisation
schemes are necessary to ensure optimal performance under varying network loads.
Finally this research addresses another issue introduced by data transformations such
as array regrouping and software caching, i.e. the need for static analysis to allow
efficient resource allocation. This thesis proposes a static code analyser that allows the
automatic resource analysis of source code containing lists and tree structures. The tool
applies a combination of amortised analysis and separation logic methodology to real
code and is able to evaluate type and resource usage of existing data structures, which
can be used to compute global resource consumption values for full data intensive
network applications.
Collections
The following license files are associated with this item: