Data-structure-aware computation offloading
Handheld smart devices are a trend nowadays. Such devices are shipped loaded with high-end processing cores yet a limited battery life. With the emerging of fast data connections, users tend to use these devices as a replacement of desktops and laptops. Since these devices are resources-constrained, there is a limit to how much computation that can be done locally. Computation offloading is the go-to solution for overcoming smart phones resources limitations. A lot of research has been done on computation offloading in terms of program representation and offloading granularity. Most offloading granularities used in previous work are code-driven such as class-based and function-based offloading. Allocation-site-based offloading has been proposed as an approach for data-centric, rather than code-centric offloading. However, although it is a step in the right direction, purely allocation-sites-based offloading suffers from a crucial flaw: due to the prevalence of data structure libraries, different data structures often use the same allocation sites, forcing logically distinct data structures to share offloading decisions and hence to be co-located. We present a novel two-steps program analysis that captures ownership relations between objects to identify which parts of the source code can be carefully cloned to achieve a better data-centric offloading. The second contribution is a code generation and rewriting strategy that transforms the program to deploy data-structures-based offloading on the fairly mature class-based offloading tools. Running a partitioned version of the Java Grande Benchmarks Suite showed a reduction of the number of messages between servers compared to the pure allocation-sites-based offloading and class-based offloading.
Kulkarni, Purdue University.
Off-Campus Purdue Users:
To access this dissertation, please log in to our