GEMs: shared-memory parallel programming for Node.js

Daniele Bonetta, Luca Salucci, Stefan Marr, Walter Binder

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

JavaScript is the most popular programming language for client-side Web applications, and Node.js has popularized the language for server-side computing, too. In this domain, the minimal support for parallel programming remains how- ever a major limitation. In this paper we introduce a novel parallel programming abstraction called Generic Messages(GEMs).GEMs allow one to combine message passing and shared-memory parallelism, extending the classes of parallel applications that can be built with Node.js. GEMs have customizable semantics and enable several forms of thread safety, isolation, and concurrency control. GEMs are designed as convenient JavaScript abstractions that expose high-level and safe parallelism models to the developer. Ex-periments show that GEMs outperform equivalent Node.js applications thanks to their usage of shared memory.
Original languageEnglish
Title of host publicationProceeding OOPSLA 2016 Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
Place of PublicationNew York
PublisherACM
Pages531-547
Number of pages17
Volume51
ISBN (Print)978-1-4503-4444-9
DOIs
Publication statusPublished - Oct 2016

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this