{"id":182978,"date":"2007-05-10T00:00:00","date_gmt":"2009-10-31T10:12:23","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/msr-research-item\/cooperative-data-and-computation-partitioning-for-distributed-architectures\/"},"modified":"2016-09-09T09:46:06","modified_gmt":"2016-09-09T16:46:06","slug":"cooperative-data-and-computation-partitioning-for-distributed-architectures","status":"publish","type":"msr-video","link":"https:\/\/www.microsoft.com\/en-us\/research\/video\/cooperative-data-and-computation-partitioning-for-distributed-architectures\/","title":{"rendered":"Cooperative Data and Computation Partitioning for Distributed Architectures"},"content":{"rendered":"<div class=\"asset-content\">\n<p>The recent design shift towards chip multiprocessors has spawned a<br \/>\nsignificant amount of research in the area of program parallelization.<br \/>\nPerformance gains in the future will require programmer and compiler<br \/>\nintervention to increase the amount of parallel work possible.  The future<br \/>\nabundance of cores on a single chip offers many possibilities in ways to<br \/>\nexploit the underlying parallel resources.  Much of the recent work in<br \/>\nthis area has fallen into the areas of coarse-grain parallelization by the<br \/>\nprogrammer with new programming models, such as transactional memory, and<br \/>\ndifferent ways to exploit threads and data-level parallelization.<\/p>\n<p>In this talk, I will focus on a different angle for increasing the<br \/>\navailable parallelism to the cores: compiler techniques to detect and<br \/>\nexploit fine-grain parallelism.  This technique creates fine-grain threads<br \/>\nby partitioning code at the granularity of individual operations and data<br \/>\nacross multiple cores and caches.  First, I will present a profile-guided<br \/>\nmethod for partitioning memory accesses that intelligently disperses data<br \/>\nacross multiple caches to minimize coherence traffic, while balancing the<br \/>\nworking set demands on each cache.  Next, I will describe a method for<br \/>\npartitioning the computation of a program across multiple cores that<br \/>\ncreates a set fine-grain threads which directly communicate scalar values.<br \/>\nFinally, I will show how these methods synergistically combine and discuss<br \/>\nfuture directions in this area.<\/p>\n<\/div>\n<p><!-- .asset-content --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The recent design shift towards chip multiprocessors has spawned a significant amount of research in the area of program parallelization. Performance gains in the future will require programmer and compiler intervention to increase the amount of parallel work possible. The future abundance of cores on a single chip offers many possibilities in ways to exploit [&hellip;]<\/p>\n","protected":false},"featured_media":194838,"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-182978","msr-video","type-msr-video","status-publish","has-post-thumbnail","hentry","msr-locale-en_us"],"msr_download_urls":"","msr_external_url":"https:\/\/youtu.be\/b2c_Pb6wHAg","msr_secondary_video_url":"","msr_video_file":"","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/182978","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\/182978\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/194838"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=182978"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=182978"},{"taxonomy":"msr-video-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video-type?post=182978"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=182978"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=182978"},{"taxonomy":"msr-session-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-session-type?post=182978"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=182978"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=182978"},{"taxonomy":"msr-episode","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-episode?post=182978"},{"taxonomy":"msr-research-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-theme?post=182978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}