JavaScript parallelizing compiler for exploiting parallelism from data-parallel HTML5 applications

Yeoul Na, Seon Wook Kim, Youngsun Han

Research output: Contribution to journalArticle

1 Citation (Scopus)

Abstract

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, dataparallel HTML5 applications by leveraging the mature affine loop analysis of conventional static compilers. We identify that themost 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.

Original languageEnglish
Article number64
JournalACM Transactions on Architecture and Code Optimization
Volume12
Issue number4
DOIs
Publication statusPublished - 2015 Dec 1

Fingerprint

Recovery
Static analysis
Mobile devices
Costs
Hardware
Processing
Experiments

Keywords

  • HTML5
  • JavaScript
  • Javascript compilers
  • Javascript engines
  • Javascriptcore
  • JIT
  • Loop parallelization

ASJC Scopus subject areas

  • Hardware and Architecture
  • Software
  • Information Systems

Cite this

JavaScript parallelizing compiler for exploiting parallelism from data-parallel HTML5 applications. / Na, Yeoul; Kim, Seon Wook; Han, Youngsun.

In: ACM Transactions on Architecture and Code Optimization, Vol. 12, No. 4, 64, 01.12.2015.

Research output: Contribution to journalArticle

@article{04c1eed1a41d4529b8922279b2e681d6,
title = "JavaScript parallelizing compiler for exploiting parallelism from data-parallel HTML5 applications",
abstract = "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, dataparallel HTML5 applications by leveraging the mature affine loop analysis of conventional static compilers. We identify that themost 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.",
keywords = "HTML5, JavaScript, Javascript compilers, Javascript engines, Javascriptcore, JIT, Loop parallelization",
author = "Yeoul Na and Kim, {Seon Wook} and Youngsun Han",
year = "2015",
month = "12",
day = "1",
doi = "10.1145/2846098",
language = "English",
volume = "12",
journal = "Transactions on Architecture and Code Optimization",
issn = "1544-3566",
publisher = "Association for Computing Machinery (ACM)",
number = "4",

}

TY - JOUR

T1 - JavaScript parallelizing compiler for exploiting parallelism from data-parallel HTML5 applications

AU - Na, Yeoul

AU - Kim, Seon Wook

AU - Han, Youngsun

PY - 2015/12/1

Y1 - 2015/12/1

N2 - 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, dataparallel HTML5 applications by leveraging the mature affine loop analysis of conventional static compilers. We identify that themost 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.

AB - 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, dataparallel HTML5 applications by leveraging the mature affine loop analysis of conventional static compilers. We identify that themost 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.

KW - HTML5

KW - JavaScript

KW - Javascript compilers

KW - Javascript engines

KW - Javascriptcore

KW - JIT

KW - Loop parallelization

UR - http://www.scopus.com/inward/record.url?scp=84954190307&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84954190307&partnerID=8YFLogxK

U2 - 10.1145/2846098

DO - 10.1145/2846098

M3 - Article

VL - 12

JO - Transactions on Architecture and Code Optimization

JF - Transactions on Architecture and Code Optimization

SN - 1544-3566

IS - 4

M1 - 64

ER -