The world of multi and many cores

In the past, software applications were built using the strength and capabilities of desktop hardware.  Hardware has advanced so quickly that software developers did not have to think about making their applications faster with each release – they could keep adding features and as they did, the hardware would support this growth.  However, this exponential growth of processor speed has slowed down. 


Chip manufacturers would tell us that the world is going to see an explosive growth of multi and many cores in the next generation microprocessors and systems that ship them.  This opens the doors for a world where we need to build the capability of building software solutions with parallel computing techniques to the broad developer base.  Today, parallel computing is still restricted to a select few people working on select hardware and environments.


We are doing some early incubation work to bring parallel computing power to the broad developer base to embrace this inflection shift through elegant software architectures, rich libraries, and powerful tools and languages all aimed at our first and best customers, our developers.


The opportunities here are huge and as we make progress in the coming year(s), we will be able to talk specifics.



Comments (10)

  1. Judah says:

    I assume one of the specifics is PLINQ. Another, perhaps, are some of the things borrowed from COmega.

    I’m really looking forward to PLINQ. That will be huge.

  2. Somasegar says:

    Hi Judah,

    PLINQ is one of the things that we are working on and is in very early stages.


  3. To what extent is Software Transactional Memory (STM) still being considered? I note the STM C# library over at Microsoft Research hasn’t been refreshed since June 2005.  I’m hoping this is because the right place for STM is to be implemented is in the runtime rather than in a library and as such that’s where the current action is. In as much as I understand it I don’t think STM is a silver bullet but I do think it has its place and it would be great to know what developments have taken place since SPJ et al where last interviewed on Channel 9.

  4. According to Soma .net will push for parallelism. This is hardly a surprise as multicore CPUs and multi

  5. [PL] Tak jak wspomniałem na konferencji Intela, podejście Microsoftu przy dostarczaniu narzędzi i technologii

  6. Stephen Heil says:

    Hi Tom,

    We believe Software Transactional Memory (STM) is a very promising technology, particularly now that multi-core systems are becoming commonplace. STM has the potential to make writing concurrent code easier than using traditional lock-based mechanisms for controlling shared state within a program. We are continuing to do research and early development work in this area to understand how we may integrate STM into our products. We also have awarded a grant for research in STM compiler support (see:”>  

    You can find recent Microsoft STM-related papers at:

    •         Beautiful concurrency by Simon Peyton Jones – May 1, 2007 (

    •         Transactional memory with data invariants by Tim Harris and Simon Peyton Jones – June 2006 (

    • Optimizing Memory Transactions by Tim Harris, Mark Plesko, Avraham Shinnar, and David Tarditi – June 2006 (

  7. Fduch says:

    Speaking of cores

    PLEASE fix the naming of .Net Framework libraries.

    We have System.Core.dll in version 3.5. So how are you going to name 4.0 version? System.Core.Duo.dll?

    I really thought that the awfull "windowsbase.dll" and WinFX->.Net 3.0 would be the last bad namings…

  8. Loc says:

    This job posting below is related to this article.

    "Are you excited about the opportunity to enable the masses of developers to deliver the next generation of application experiences? Industry analysts forecast that by 2012, the client hardware platform will be massively parallel. The day of the many core machine is fast approaching, and exploiting those cycles via concurrency is the only way to leverage the utility and power of these platforms. To enable the next generation application experience, Microsoft must develop simpler and more composable ways of expressing parallelism and the tools to make developers successful at doing so."

    "Microsoft Concurrency Runtime Group: Our team will focus on a set of innovative new technologies-including Transactional Memory (TM), parallel libraries, a Concurrency Runtime, and Parallel LINQ-which we believe we will provide the concurrency framework developers need to deliver the next generation of application experiences which will compel Microsoft customers."

  9. Not required says:

    Somasegar, you are morron! Now I understand, why MS releases worse products year by year.

  10. The week of OOPSLA is now over and life has now returned to its regular path. Some notes from last week’s…