Abstract
Systems based on event-loops have been popularized by Node.JS, and are becoming a key technology in the domain of cloud computing. Despite their popularity, such systems support only share-nothing parallelism via message passing between parallel entities usually called workers. In this paper, we introduce a novel parallel programming abstraction called Generic Messages (GEMs), which enables shared-memory parallelism for share-nothing event-based systems. A key characteristic of GEMs is that they enable workers to share state by specifying how the state can be accessed once it is shared. We call this aspect of the GEMs model capability-based parallelism.
- Dart: Scalable, productive app development. https://www.dartlang.org/.Google Scholar
- Oracle Graal.JS, High-Performance JavaScript on the JVM. http://www.oracle.com/technetwork/oracle-labs.Google Scholar
- Scala.js: A safer way to build robust front-end Web applications! http://www.scala-js.org/.Google Scholar
- G. Agha. Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA, USA, 1986. Google Scholar
Digital Library
- G. Kiczales, J. des Rivires, and D. G. Bobrow. The Art of the Metaobject Protocol. The MIT Press, Cambridge, 1991. Google Scholar
Digital Library
- S. Marr and H. Mössenböck. Optimizing Communicating Event-Loop Languages with Truffle, October 2015. Presentation at 5th AGERE Workshop, colocated with SPLASH'15.Google Scholar
- M. S. Miller, E. D. Tribble, and J. Shapiro. Concurrency Among Strangers: Programming in E as Plan Coordination. In Symposium on Trustworthy Global Computing, volume 3705 of Lecture Notes in Computer Science, pages 195--229. Springer, April 2005. Google Scholar
Digital Library
Index Terms
Generic messages: capability-based shared memory parallelism for event-loop systems
Recommendations
Generic messages: capability-based shared memory parallelism for event-loop systems
PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingSystems based on event-loops have been popularized by Node.JS, and are becoming a key technology in the domain of cloud computing. Despite their popularity, such systems support only share-nothing parallelism via message passing between parallel ...
GEMs: shared-memory parallel programming for Node.js
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsJavaScript 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 ...
GEMs: shared-memory parallel programming for Node.js
OOPSLA '16JavaScript 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 ...






Comments