Parallel Programming with Chorus

95
Опубликовано 7 сентября 2016, 17:31
I present Chorus, a high-level parallel programming model targeting irregular, heap-manipulating applications like mesh refinement and triangulation, and Jchorus, an implementation of the model on top of sequential Java. One focus of Chorus is dynamism: the fact that in irregularly parallel applications, ownership and isolation are usually instance-dependent and highly dynamic. The other is locality: the property that in many of the same applications, typical imperative commands only affect small, local regions in the heap. Chorus addresses dynamism and locality through the unifying abstraction of an *object assembly*, a short-lived, speculative task that owns a local region in a shared data structure. The task can only access objects that it owns; while changes in ownership are frequent, they are local -- i.e., objects only move from one assembly to a neighboring one -- and linear -- i.e., aliasing and copying are tightly controlled. Programming primitives include a merge-operation, by which an assembly merges with an adjacent assembly, and a split-operation, which linearly splits an assembly into smaller ones. Our abstractions are race and deadlock-free, and inherently data-centric. We demonstrate that Chorus and Jchorus allow natural programming of several important applications exhibiting irregular data-parallelism. From preliminary investigations, it demonstrates competitive performance as well. I finish with a discussion of current work on fractional ownership in Chorus, and on the integration of Chorus with the Habanero-Java language from Rice University.
11 дней – 218 3640:27
Connecting to your smart life
11 дней – 3381:04
What is Nokia EDA platform?
12 дней – 181 1230:20
Which one would you visit? 😎
15 дней – 300 1014:56
iOS 18’s Best Features
2 дня – 1 06442:38
091: Season 5 wrap-up
автотехномузыкадетское