Parallel Programming Talk #82 - Intel's Michael McCool talks Structured Parallel Programming with Deterministic Patterns

Welcome to Show 82 of Parallel Programming Talk. Today is June 22nd and were talking with Michael McCool about his recent papers Structured Parallel Programming with Deterministic Patterns.

Threading Challenge 2010!!!!
July 12 - Threading Challenge Phase 1 Problem 2 Closes. Choose the right level for you! Please see official rules for more information or visit the dedicated forum for this problem to get your questions answered.  Good Luck!

Participate in Intel® 20 Questions Contest and win free Intel® Parallel Studio license and gift card! Answer basic questions about Intel® Parallel Studio for a chance to win free license and gift card. Visit Intel® 20 Questions Contest home page to learn more. Intel Parallel Studio helps developers improve software performance, both for sequential and parallel algorithms. This contest will be an enjoyable exploration of the various features, capabilities and components of Intel Parallel Studio.

Concurrent Collections for Haskel
Announcing Intel Concurrent Collections for Haskell 0.1

Intel Unveils New Product Plans for High-Performance Computing Intel® Many Integrated Core Chips at the International Supercomputing Conference last week.

Intel® IPP 7.0 beta is available now, your feedback is critical to the success of our product. We are especially interested in your feedback on the key features listed below. We also encourage you to send us feedback about our beta programs, web site and support services.

If you have questions you'd like to see up discuss, ideas for show topics or just want to send fan mail....Send Email to

On Today's Show:

Dr. Michael McCool works for the Software Services Group at Intel, specifically on software development platforms for high-productivity (yet efficient!) parallel computing. He has experience in computer graphics and medical imaging as well as parallel computing, and likes to approach the problem of designing systems by starting with the needs of the application and the application developer. Follow Michael on Twitter: @michaelmccool

Michael presented the technical paper Structured Parallel Programming with Deterministic Patterns at the HotPar ’10, 2nd USENIX Workshop on Hot Topics in Parallelism on 14-15 June 2010, in Berkeley, CA.

From the paper:

Many-core processors target improved computational performance by making available various forms of architectural parallelism, including but not limited to multiple cores and vector instructions. However, approaches to parallel programming based on targeting these low-level parallel mechanisms directly leads to overly complex, non-portable, and often unscalable and unreliable code.

A more structured approach to designing and implementing parallel algorithms is useful to reduce the complexity of developing software for such processors, and is particularly relevant for many-core processors with a large amount of parallelism and multiple parallelism mechanisms. In particular, efficient and reliable parallel programs can be designed around the composition of deterministic algorithmic skeletons, or patterns. While improving the productivity of experts, specific patterns and fused combinations of patterns can also guide relatively inexperienced users to developing efficient algorithm implementations that have good scalability.

The approach to parallelism described in this document includes both collective "data-parallel" patterns such as map and reduce as well as structured "task-parallel" patterns such as pipelining and superscalar task graphs. The structured pattern based approach, like data-parallel models, addresses issues of both data access and parallel task distribution in a common framework. Optimization of data access is important for both many-core processors with shared memory systems and accelerators with their own memories not directly attached to the host processor.

A catalog of useful structured serial and parallel patterns will be presented. Serial patterns are presented because structured parallel programming can be considered an extension of structured control flow in serial programming. We will emphasize deterministic patterns in order to support the development of systems that automatically avoid unsafe race conditions and deadlock.

Coming Up Next on Parallel Programming Talk

What Parallel Programmers Can Learn from Game Developers - Brad Werth
Date/Time: 7/13/2010 at 8:00 AM Pacific - Watch Live on ISN TV

Watch Parallel Programming Talk every Tuesday at 8:00AM PT live on Intel Software Network TV.

And remember, let's be thread safe out there.

Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.