2017 Volume 25 Pages 426-437
Thanks to high performance and low power consumption on Android mobile devices such as smartphones and tablet computers, the use of Android platform has been increasing significantly. Android platforms almost consist of ARM-based multicores and most of the applications have been developed in Java language. Recent Android OS introduces the Java runtime environment called ART which enables use of Fork/Join framework. The Fork/Join framework provides the scheduling mechanism with work-stealing and it is mainly used for programs to implement the divide-and-conquer algorithm or the recursive algorithm. However, in the case of ordinary programs, it is difficult to implement a coarse-grain parallel code based on Fork/Join framework considering data-dependency. To cope with such a problem, this paper proposes a coarse-grain parallel code generation scheme using a developed compiler which converts a Java source program with directives into a task-driven parallel code based on Fork/Join framework. In the performance evaluation using four programs from Java Grande Forum Benchmark Suite, the execution on Samsung Galaxy S6 with heterogeneous eight cores could achieve 2.77-5.12 times speedup versus sequential processing and the execution on NVIDIA Shield Tablet with four cores could also achieve 2.34-3.94 times speedup. Consequently, effectiveness of the proposed scheme was confirmed.