In 1965, Gordon Moore famously predicted what is now known as Moore’s Law, an observation predicting that the number of transistors placed on an integrated circuit would double every 18 to 24 months, which roughly translates to increases in clock speed and microprocessor power in the same time period. This growth in processing power and in commodity hardware, along with emergence of the GUI, the Internet, mobile devices, and software services, has transformed information management and personal productivity. Each wave of new technologies has made computing more personal, social, and mobile. Personal computing has fundamentally changed the way we work, the way we connect, the way we learn, and the way we conduct business.
Future improvements in hardware processing power are proceeding on a new model. Instead of deriving processing power from scaling clock speed, which eventually increases power usage and heat emission to unmanageable levels, chip manufacturers have begun to increase overall processing power by adding additional CPUs, or “cores” to the microprocessor package.
With the .NET Framework today, correctly introducing concurrency and parallelism into libraries and applications is difficult, time consuming, and error-prone. However, as the hardware industry shifts towards multi-core and manycore processors, the key to high-performance applications is parallelism. The .NET Framework 4 and Visual Studio 2010 offer solutions to help make coding, debugging, and profiling concurrent applications significantly easier. In this talk, we’ll examine Parallel LINQ-to-Objects (PLINQ), the Task Parallel Library (TPL), new coordination and synchronization types, and Visual Studio tooling support in order to provide a look at the next generation of parallel programming with .NET.