|
Autor: Campbell, Colin (2) / Johnson, Ralph / Miller, Ade (3) |
|||||||||||||||||||
|
Parallel Programming with Microsoft .NET - Patterns & PracticesDesign Patterns for Decomposition and CoordinationOn Multicore Architectures.
|
||||||||||||||||||
|
|
|||||||||||||||||||
|
|
|||||||||||||||||||
Parallel Programming with Microsoft .NET - Patterns & Practices
Design Patterns for Decomposition and Coordination
The CPU meter shows the problem. One core is running at 100 percent, but all the other cores are idle. Your application is CPU-bound, but you are using only a fraction of the computing power of your multicore system. What next?
The answer in a nutshell, is parallel programming. Where you once would have written the kind of sequential code that is familiar to all programmers, you now find that this no longer meets your performance goals. To use your system´s CPU resources efficiently, you need to split your application into pieces that can run at the same time.
This is easier said than done. Parallel programming has a reputation for being the domain of experts and a minefield of subtle, hard-to-reproduce software defects. Everyone seems to have a favorite story about a parallel program that did not behave as expected because of a mysterious bug.
These stories should inspire a healthy respect for the difficulty of the problems you face in writing your own parallel programs. Fortunately, help has arrived. Microsoft .NET Framework 4 introduces a new programming model for parallelism that significantly simplifies the job. Behind the scenes are supporting libraries with sophisticated algorithms that dynamically distribute computations on multicore architectures.
Proven design patterns are another source of help. Parallel Programming with Microsoft .NET introduces you to the most important and frequently used patterns of parallel programming and gives executable code samples for them, using the Task Parallel Library (TPL) and Parallel LINQ (PLINQ).
patterns & practices
Proven practices for predictable results
Save time and reduce risk on your software development projects by incorporating patterns & practices, Microsoft´s applied engineering guidance that includes both production quality source code and documentation.
The guidance is designed to help software development teams:
Make critical design and technology selection decisions by highlighting the appropriate solution architectures, technologies, and Microsoft products for common scenarios
Understand the most important concepts needed for success by explaining the relevant patterns and prescribing the important practices
Get started with a proven code base by providing thoroughly tested software and source that embodies, Microsoft´s recommendations
The patterns & practices team consists of experienced architects, developers, writers, and testers. We work openly withß the developer community and industry experts, on every project, to ensure that someß of the best minds in the industry have contributed to and reviewed the guidance as it is being developed.
We also love our role as the bridge between the real world needs of our customers and the wide range of products and technologies that Microsoft provides.
About the Authors Colin Campbell, Ralph Johnson, Ade Miller, and Stephen Toub:
Colin Campbell is a coauthor of Model-Based Software Testing and Analysis in C# and he has written several academic papers on mathematically rigorous approaches to software analysis. He is a founder and principal at Modeled Computation LLC, in Seattle.Ralph Johnson is a research associate professor at the University of Illinois. He was one of the four co-authors of Design Patterns, and the leader of the group that developed the first automated refactoring tool, the Smalltalk Refactoring Browser. For the past few years, he has been working on documenting patterns of parallel programming.
Ade Miller works as a Development Lead with Microsoft´s patterns & practices group, where he manages several agile teams who deliver applied engineeringß guidance to Microsoft´s customers. His primary interests are in parallel computing and agile software development practices.
Stephen Toub works on the Parallel Computing Platform team at Microsoft. He spends his days designing and developing the next generation of concurrent and parallel programming models for .NET and Visual Studio.