GEMs: Shared-memory Parallel Programming for Node.js
D. Bonetta, L. Salucci, S. Marr, and W. Binder. Proceedings of the 2016 ACM International Conference on Object Oriented Programming Systems Languages & Applications, page 531--547. ACM, (Nov 2, 2016)(acceptance rate 25%).
DOI: 10.1145/2983990.2984039
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.
%0 Conference Paper
%1 Bonetta:2016:GEMs
%A Bonetta, Daniele
%A Salucci, Luca
%A Marr, Stefan
%A Binder, Walter
%B Proceedings of the 2016 ACM International Conference on Object Oriented Programming Systems Languages & Applications
%D 2016
%I ACM
%K Concurrency JavaScript MeMyPublication Messaging NodeJS Parallelism SharedMemory myown
%P 531--547
%R 10.1145/2983990.2984039
%T GEMs: Shared-memory Parallel Programming for Node.js
%X 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.
%@ 978-1-4503-4444-9
@inproceedings{Bonetta:2016:GEMs,
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.},
acceptancerate = {0.25},
added-at = {2016-08-06T18:37:21.000+0200},
author = {Bonetta, Daniele and Salucci, Luca and Marr, Stefan and Binder, Walter},
biburl = {https://www.bibsonomy.org/bibtex/2ff7fca234fe287ef685c0a5d3713c39a/gron},
booktitle = {Proceedings of the 2016 ACM International Conference on Object Oriented Programming Systems Languages \& Applications},
day = 2,
doi = {10.1145/2983990.2984039},
interhash = {03ef98ec7bc5ec5346ad4e4daf7202f5},
intrahash = {ff7fca234fe287ef685c0a5d3713c39a},
isbn = {978-1-4503-4444-9},
keywords = {Concurrency JavaScript MeMyPublication Messaging NodeJS Parallelism SharedMemory myown},
location = {Amsterdam, Netherlands},
month = {November},
note = {(acceptance rate 25%)},
numpages = {18},
pages = {531--547},
pdf = {https://stefan-marr.de/downloads/oopsla16-bonetta-et-al-gems-shared-memory-parallel-programming-for-nodejs.pdf},
publisher = {ACM},
series = {OOPSLA '16},
timestamp = {2022-08-29T20:38:33.000+0200},
title = {{GEMs: Shared-memory Parallel Programming for Node.js}},
year = 2016
}