skip to main content
10.1145/2588768.2576788acmotherconferencesArticle/Chapter ViewAbstractPublication PagesgpgpuConference Proceedingsconference-collections
research-article

ParallelJS: An Execution Framework for JavaScript on Heterogeneous Systems

Published: 01 March 2014 Publication History

Abstract

JavaScript has been recognized as one of the most widely used script languages. Optimizations of JavaScript engines on mainstream web browsers enable efficient execution of JavaScript programs on CPUs. However, running JavaScript applications on emerging heterogeneous architectures that feature massively parallel hardware such as GPUs has not been well studied.
This paper proposes a framework for flexible mapping of JavaScript onto heterogeneous systems that have both CPUs and GPUs. The framework includes a frontend compiler, a construct library and a runtime system. JavaScript programs written with high-level constructs are compiled to GPU binary code and scheduled to GPUs by the runtime. Experiments show that the proposed framework achieves up to 26.8x speedup executing JavaScript applications on parallel GPUs over a mainstream web browser that runs on CPUs.

References

[1]
AMD. Amd fusion family of apus: Enabling a superior, immersive pc experience. March 2010.
[2]
N. Bell and J. Hoberock. Thrust: A 2 6. GPU Computing Gems Jade Edition, page 359, 2011.
[3]
B. Catanzaro, M. Garland, and K. Keutzer. Copperhead: Compiling an embedded data parallel language. SIGPLAN Not., 46(8):47--56, Feb. 2011.
[4]
D. Flanagan. JavaScript. O'Reilly, 1998.
[5]
Google. V8 javascript engine: Introduction. 2010.
[6]
S. Herhut, R. L. Hudson, T. Shpeisman, and J. Sreeram. River trail: A path to parallelism in javascript. SIGPLAN Not., 48(10):729--744, Oct. 2013.
[7]
A. Hidayat. Esprima: Ecmascript parsing infrastructure for multipurpose analysis. http://esprima.org/.
[8]
R. Hindley. The principal type-scheme of an object in combinatory logic. Transactions of the american mathematical society, 146:29--60, 1969.
[9]
Khronos. Webcl working draft. 2013.
[10]
Khronos Group. The OpenCL Specification, version 2.0. November 2013.
[11]
A. Klöckner, N. Pinto, Y. Lee, B. Catanzaro, P. Ivanov, A. Fasih, A. Sarma, D. Nanongkai, G. Pandurangan, P. Tetali, et al. Pycuda: Gpu run-time code generation for high-performance computing. Arxiv preprint arXiv, 911, 2009.
[12]
M. Kulkarni, M. Burtscher, C. Casçaval, and K. Pingali. Lonestar: A suite of parallel irregular programs. In ISPASS '09: IEEE International Symposium on Performance Analysis of Systems and Software, 2009.
[13]
C. Lattner and V. Adve. Llvm: A compilation framework for lifelong program analysis & transformation. CGO '04, pages 75--. IEEE Computer Society, 2004.
[14]
D. Merrill. Nvidia cub library. 2013.
[15]
R. Milner. A theory of type polymorphism in programming. Journal of computer and system sciences, 17(3):348--375, 1978.
[16]
Mozilla. Spidermonkey. 2013.
[17]
NVIDIA. Cuda c programming guide, 2012.
[18]
NVIDIA. Nvvm ir specification 1.0. 2013.
[19]
NVIDIA. Parallel thread execution isa, 2013.
[20]
U. Pitambare, A. Chauhan, and S. Malviya. Just-in-time acceleration of javascript.
[21]
W3C. Web workers, 2013.
[22]
H. Wu, G. Diamos, T. Sheard, M. Aref, S. Baxter, M. Garland, and S. Yalamanchili. Red fox: An execution environment for relational query processing on gpus. CGO '14, 2014.

Cited By

View all
  • (2021)Browser-Level Parallelism and Interactive Rendering APIs for Scalable Computation-Intensive SaaS: Application to Brain Diffusion MRIIEEE Transactions on Services Computing10.1109/TSC.2018.284735414:4(971-984)Online publication date: 1-Jul-2021
  • (2018)Using compiler snippets to exploit parallelism on heterogeneous hardware: a Java reduction case studyProceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3281287.3281292(16-25)Online publication date: 4-Nov-2018
  • (2018)General-Purpose Computation on GPUs in the Browser Using gpu.jsComputing in Science and Engineering10.1109/MCSE.2018.10816311620:1(33-42)Online publication date: 1-Feb-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
GPGPU-7: Proceedings of Workshop on General Purpose Processing Using GPUs
March 2014
110 pages
ISBN:9781450327664
DOI:10.1145/2588768
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 March 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. GPGPU
  2. JavaScript
  3. Parallel Construct

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

GPGPU-7

Acceptance Rates

GPGPU-7 Paper Acceptance Rate 12 of 27 submissions, 44%;
Overall Acceptance Rate 57 of 129 submissions, 44%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Browser-Level Parallelism and Interactive Rendering APIs for Scalable Computation-Intensive SaaS: Application to Brain Diffusion MRIIEEE Transactions on Services Computing10.1109/TSC.2018.284735414:4(971-984)Online publication date: 1-Jul-2021
  • (2018)Using compiler snippets to exploit parallelism on heterogeneous hardware: a Java reduction case studyProceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3281287.3281292(16-25)Online publication date: 4-Nov-2018
  • (2018)General-Purpose Computation on GPUs in the Browser Using gpu.jsComputing in Science and Engineering10.1109/MCSE.2018.10816311620:1(33-42)Online publication date: 1-Feb-2018
  • (2018)And Now for Something Completely Different: Running Lisp on GPUs2018 IEEE International Conference on Cluster Computing (CLUSTER)10.1109/CLUSTER.2018.00060(434-444)Online publication date: Sep-2018
  • (2014)A Hybrid SaaS/Grid Architecture for Diffusion MRI in Brain Imaging FieldInternational Journal of Organizational and Collective Intelligence10.4018/ijoci.20141001024:4(24-58)Online publication date: 1-Oct-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media