Skip to main content

GEMs: Shared-memory Parallel Programming for Node.js

Bonetta, Daniele and Salucci, Luca and Marr, Stefan and Binder, Walter (2016) GEMs: Shared-memory Parallel Programming for Node.js. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. SPLASH Systems, Programming, and Applications . ACM, New York, USA, pp. 531-547. ISBN 978-1-4503-4444-9. (doi:10.1145/2983990.2984039) (KAR id:63817)

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 however 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. Experiments show that GEMs outperform equivalent Node.js applications thanks to their usage of shared memory.

Item Type: Book section
DOI/Identification number: 10.1145/2983990.2984039
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Stefan Marr
Date Deposited: 08 Nov 2017 22:18 UTC
Last Modified: 08 Dec 2022 23:59 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/63817 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.