MulticoreInfo.com header image 2

Thread Management In The CLR

November 21st, 2008 · 1 Comment




Authors: Erika Fuentes and Eric Eilebrecht for MSDN Magazine
This column is based on prerelease versions of the CLR Threading System and the Task Parallel Libraries. All information is subject to change.

The ongoing technological evolution from single-core to manycore architectures is bringing great benefits. Consider, for instance, a threaded environment where the efficient use of multiple threads can promote better performance through the use of multiple cores and parallelism, for example, an ASP.NET application using multiple threads to make many independent queries to a database.
Using multiple cores does bring about new problems, however. You’ll likely see an increase in the complexity of programming and synchronization models, you’ll need to control concurrency, and performance tuning and optimization will be more difficult. Additionally, many of the new factors that affect the performance and behavior of concurrent applications are not well understood. Thus, tuning for performance has become challenging, especially when the targeted optimizations are not application-specific but rather general purpose.

Threading in the CLR is an example of a concurrent environment where many factors (such as those introduced by multiple-core architectures) can influence the behavior and performance of concurrency. Lock and cache contention and excessive context switching are just a few. Ongoing work on the CLR ThreadPool aims to make it easier for developers to exploit concurrency and parallelism for higher concurrency levels and better performance by integrating the Parallel Frameworks into the runtime and internally dealing with some of the most common problems.

In this column, the authors describe some of the common issues developers encounter and the important factors to be considered when tuning multithreaded managed code, particularly in multiprocessor hardware. They also describe how future changes in the ThreadPool should deal with some of these issues and help alleviate the programmers’ work. Furthermore, they discuss some important aspects of concurrency control, which can help you to understand the behavior of apps in highly multithreaded environments.

Full Story

  • Share/Save/Bookmark

Tags: MulticoreInfo

Like what you're reading? Come back every day for multicore news, or subscribe to RSS updates.



Stumble It!     


1 response so far ↓

  • 1 Soroanemope // Jul 23, 2009 at 10:26 am

    Vista is termed as a Technology Break.
    afz