A Mutable Hardware Abstraction to Replace Threads - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year : 2011

A Mutable Hardware Abstraction to Replace Threads


We propose an abstraction to alleviate the difficulty of programming with threads. This abstraction is not directly usable by application programmers. Instead, application-visible behavior is defined through a semantical plugin, and invoked via a language or library that uses the plugin. The main benefit is that parallel language runtimes become simpler to implement, because they use sequential algorithms for the parallel semantics. This is possible because the abstraction makes available a virtual time in which events in different program time-lines are sequentialized. The parallel semantics relate events in different time-lines via relating the sequentialized versions within the virtual time-line. We have implemented the abstraction in user-space and demonstrate its low overhead and quickness to implement a runtime on three sets of parallelism constructs: rendez-vous style \texttt{send} and \texttt{receive}; Cilk style \texttt{spawn} and \texttt{sync}, which have similar performance to Cilk 5.4; and \texttt{mutex} and \texttt{condition variable} constructs from pthreads, which have 80x lower overhead than Linux thread operations. Development time averaged around two days per set, versus an expected duration of weeks to modify a thread-based runtime system.
Fichier principal
Vignette du fichier
lcpc11.pdf (329.64 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-00645220 , version 1 (28-11-2011)


  • HAL Id : hal-00645220 , version 1


Sean Halle, Albert Cohen. A Mutable Hardware Abstraction to Replace Threads. LCPC'11 - The 24th International Workshop on Languages and Compilers for Parallel Computing, Sep 2011, Fort Collins, United States. ⟨hal-00645220⟩
153 View
419 Download


Gmail Facebook X LinkedIn More