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
期刊:
ACM Transactions on Architecture and Code Optimization (TACO)
影响因子:
--
通讯作者:
Youngsun Han
Youngsun Han
中科院分区:
--
文献类型:
--
作者:
Yeoul Na;S. Kim;Youngsun Han

文献摘要

被引文献

相似文献

随着HTML5标准的出现,JavaScript正在越来越多地处理计算密集的数据并行工作负载。因此,强调了JavaScript性能的增强,因为JavaScript和本机应用之间的性能差距仍然很大。尽管有这种紧迫性,但传统的JavaScript编译器即使是从数据并行的JavaScript应用程序中也没有多大的并行性,尽管当代移动设备配备了昂贵的并行硬件平台,例如多层处理器和GPGPU。在本文中,我们提出了一个自动并行化的JavaScript编译器,该编译器通过利用传统静态编译器的成熟仿射环分析来瞄准出现的数据并行HTML5应用程序。我们确定,与常规静态分析并行化JavaScript时,最关键的问题是确保正确的并行化,最小化汇编开销以及在并行执行期间发生推测失败时进行低成本恢复。我们提出了一种基于编译器技术和势能的属性,以低成本安全处理故障的机制。我们的实验表明,所提出的JavaScript并行化编译器检测到大多数仿射并行循环。此外,我们在四核系统上达到了3.22次的最大速度,同时使用各种数据并行HTML5应用程序产生可忽略不计的汇编和恢复开销。
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.