CISUC

Eve: A Parallel Event-Driven Programming Language

Authors

Abstract

We propose a model for event-oriented programming under shared memory based on access permissions with explicit parallelism. In order to obtain safe parallelism, programmers need to specify the variable permissions of functions. Blocking operations are non existent, and callback-based APIs are used instead, which can be called in parallel for different events as long as the access permissions are guaranteed. This model scales for both IO and CPU-bounded programs.
We have implemented this model in the Eve language, which includes a compiler that generates parallel tasks with synchronization on top of variables, and a work-stealing runtime that uses the epoll interface to manage the event loop.
We have also evaluated that model in micro-benchmarks in programs that are either CPU-intensive or IO-intensive with and without shared data. In CPU-intensive programs, it achieved results very close to multithreaded approaches. In the share-nothing IO-intensive benchmark it outperformed all other solutions. In shared-memory IO-intensive benchmark it outperformed other solutions with a more or equal value of writes than read operations.

Keywords

Event-oriented, Parallel Programming, IO performance

Subject

A Parallel Event-Driven Programming Language

Related Project

AEMINIUM - Freeing Programmers from the Shackles of Sequentiality

Conference

Euro-Par 2014: Parallel Processing Workshops, January 2014

PDF File

DOI


Cited by

No citations found