Skip to Main Content
We describe a system that takes monolithic Java programs as its input and automatically converts them into distributed Java programs. Our research is situated in the context of resource-constrained mobile devices, in which there are often multiple distribution objectives, such as minimizing energy consumption on mobile devices by off loading workloads to a stationary server, or minimizing total execution time. Our method initially constructs an object relation graph (ORG), using a combination of static analysis and offline profiling. Instead of directly partitioning this ORG, we then transform it into a target graph (TG) to abstract from concrete distribution infrastructures and objectives. By applying this two-layer graph modeling, we achieve a unified strategy for different partitioning goals. Preliminary benchmarks for our prototype implementation are highly promising, with an average speedup factor of almost 1.5 and an average energy savings of 83.5% for the beneficial benchmarks.