Support more than 64 cores from .NET code?

Fri, July 24, 2009, 05:26 PM under Windows
As you know by now, Windows 7 supports up to 256 logical processors (a 4-fold increase from previous versions). A few months ago I posted my screenshot of a system with 128 cores and reader kotsoft asked why the CPU utilization was at 50%.

The reason is that I was running a straightforward .NET 4 app that used TPL and the CLR 4 ThreadPool does not take advantage of more than 64 cores. Digging deeper reveals that there are certain new (native obviously) APIs that an application must use to go beyond the 64-core support and specifically the ones described here about processor groups – the CLR is not utilizing them in this release.

I wonder who will be the first to wrap these functions from managed code and show an example of their usage…
Saturday, 25 July 2009 12:43:00 (Pacific Daylight Time, UTC-07:00)
Done [http://multiproc.codeplex.com], although I don't have access to hardware that can really show more than one processor group :-)
Also see my blog post [http://blogs.microsoft.co.il/blogs/sasha/archive/2009/07/25/net-support-for-more-than-64-processors.aspx].
Monday, 10 August 2009 10:04:45 (Pacific Daylight Time, UTC-07:00)
Nice (and quick) job Sasha! Now I need to find someone to wrap them from a custom TaskScheduler class, so I can try it on the 128 core machine here...
Comments are closed.