Title | ||
---|---|---|
Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism |
Abstract | ||
---|---|---|
As the web becomes the platform of choice for execution of more complex applications, a growing portion of computation is handed off by developers to the client side to reduce network traffic and improve application responsiveness. Therefore, the client-side component, often written in JavaScript, is becoming larger and more compute-intensive, increasing the demand for high performance JavaScript execution. This has led to many recent efforts to improve the performance of JavaScript engines in the web browsers. Furthermore, considering the wide-spread deployment of multi-cores in today's computing systems, exploiting parallelism in these applications is a promising approach to meet their performance requirement. However, JavaScript has traditionally been treated as a sequential language with no support for multithreading, limiting its potential to make use of the extra computing power in multicore systems. In this work, to exploit hardware concurrency while retaining traditional sequential programming model, we develop ParaScript, an automatic runtime parallelization system for JavaScript applications on the client's browser. First, we propose an optimistic runtime scheme for identifying parallelizable regions, generating the parallel code on-the-fly, and speculatively executing it. Second, we introduce an ultra-lightweight software speculation mechanism to manage parallel execution. This speculation engine consists of a selective checkpointing scheme and a novel runtime dependence detection mechanism based on reference counting and range-based array conflict detection. Our system is able to achieve an average of 2.18脳 speedup over the Firefox browser using 8 threads on commodity multi-core systems, while performing all required analyses and conflict detection dynamically at runtime. |
Year | DOI | Venue |
---|---|---|
2011 | 10.1109/HPCA.2011.5749719 | HPCA |
Keywords | Field | DocType |
novel runtime dependence detection,high performance javascript execution,performance requirement,conflict detection dynamically,ultra-lightweight speculation mechanism,parallel execution,javascript application,javascript engine,range-based array conflict detection,dynamic parallelization,optimistic runtime scheme,automatic runtime parallelization system,software engineering,speculative execution,programming model,parallel systems,hardware,reference counting,multi threading,multithreading,engines,java | Client-side,Multithreading,Programming paradigm,Concurrency,Computer science,Parallel computing,Unobtrusive JavaScript,Real-time computing,Thread (computing),JavaScript,Speedup | Conference |
ISSN | Citations | PageRank |
1530-0897 | 17 | 0.78 |
References | Authors | |
15 | 4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Mojtaba Mehrara | 1 | 176 | 8.12 |
Po-Chun Hsu | 2 | 57 | 7.95 |
Mehrzad Samadi | 3 | 422 | 16.09 |
Scott Mahlke | 4 | 4811 | 312.08 |