JavaScript Parallelizing Compiler for Exploiting Parallelism from Data-Parallel HTML5 Applications
JavaScript Parallelizing Compiler for Exploiting Parallelism from Data-Parallel HTML5 Applications
复制标题
用于利用数据并行 HTML5 应用程序的并行性的 JavaScript 并行编译器
DOI:
--
复制
发表时间:
2016
期刊:
影响因子:
--
通讯作者:
Youngsun Han
中科院分区:
文献类型:
--
作者:
Yeoul Na;S. Kim;Youngsun Han
With the advent of the HTML5 standard, JavaScript is increasingly processing computationally intensive, data-parallel workloads. Thus, the enhancement of JavaScript performance has been emphasized because the performance gap between JavaScript and native applications is still substantial. Despite this urgency, conventional JavaScript compilers do not exploit much of parallelism even from data-parallel JavaScript applications, despite contemporary mobile devices being equipped with expensive parallel hardware platforms, such as multicore processors and GPGPUs. In this article, we propose an automatically parallelizing JavaScript compiler that targets emerging, data-parallel HTML5 applications by leveraging the mature affine loop analysis of conventional static compilers. We identify that the most critical issues when parallelizing JavaScript with a conventional static analysis are ensuring correct parallelization, minimizing compilation overhead, and conducting low-cost recovery when there is a speculation failure during parallel execution. We propose a mechanism for safely handling the failure at a low cost, based on compiler techniques and the property of idempotence. Our experiment shows that the proposed JavaScript parallelizing compiler detects most affine parallel loops. Also, we achieved a maximum speedup of 3.22 times on a quad-core system, while incurring negligible compilation and recovery overheads with various sets of data-parallel HTML5 applications.