• DocumentCode
    2946874
  • Title

    Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism

  • Author

    Mehrara, Mojtaba ; Hsu, Po-Chun ; Samadi, Mehrzad ; Mahlke, Scott

  • Author_Institution
    Univ. of Michigan, Ann Arbor, MI, USA
  • fYear
    2011
  • fDate
    12-16 Feb. 2011
  • Firstpage
    87
  • Lastpage
    98
  • 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.
  • Keywords
    Java; multi-threading; multiprocessing systems; online front-ends; Firefox browser; JavaScript applications; ParaScript; Web browsers; dynamic parallelization; hardware concurrency; multicore systems; multithreading; network traffic reduction; sequential programming model; ultra lightweight speculation mechanism; Arrays; Browsers; Checkpointing; Engines; Hardware; Runtime; Software;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Computer Architecture (HPCA), 2011 IEEE 17th International Symposium on
  • Conference_Location
    San Antonio, TX
  • ISSN
    1530-0897
  • Print_ISBN
    978-1-4244-9432-3
  • Type

    conf

  • DOI
    10.1109/HPCA.2011.5749719
  • Filename
    5749719