{"id":181895,"date":"2009-08-17T00:00:00","date_gmt":"2009-10-31T09:10:40","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/msr-research-item\/parallel-programming-with-chorus\/"},"modified":"2016-09-09T09:43:44","modified_gmt":"2016-09-09T16:43:44","slug":"parallel-programming-with-chorus","status":"publish","type":"msr-video","link":"https:\/\/www.microsoft.com\/en-us\/research\/video\/parallel-programming-with-chorus\/","title":{"rendered":"Parallel Programming with Chorus"},"content":{"rendered":"<div class=\"asset-content\">\n<p>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.<\/p>\n<p>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 \u2013 i.e., objects only move from one assembly to a neighboring one \u2013 and linear \u2013 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.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<\/div>\n<p><!-- .asset-content --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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: [&hellip;]<\/p>\n","protected":false},"featured_media":194354,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr_hide_image_in_river":0,"footnotes":""},"research-area":[],"msr-video-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-session-type":[],"msr-impact-theme":[],"msr-pillar":[],"msr-episode":[],"msr-research-theme":[],"class_list":["post-181895","msr-video","type-msr-video","status-publish","has-post-thumbnail","hentry","msr-locale-en_us"],"msr_download_urls":"","msr_external_url":"https:\/\/youtu.be\/3ZaWd7BOUso","msr_secondary_video_url":"","msr_video_file":"","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/181895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-video"}],"version-history":[{"count":0,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/181895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/194354"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=181895"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=181895"},{"taxonomy":"msr-video-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video-type?post=181895"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=181895"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=181895"},{"taxonomy":"msr-session-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-session-type?post=181895"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=181895"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=181895"},{"taxonomy":"msr-episode","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-episode?post=181895"},{"taxonomy":"msr-research-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-theme?post=181895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}