我有一个关于网络农场框架和PLINQ的问题。
我们知道,我们可以在.NET 4.0框架中使用AsParallel扩展。
例如
var source = Enumerable.Range(1, 10000);
// Opt-in to PLINQ with AsParallel
var evenNums = from num in source.AsParallel()
where Compute(num) > 0
select num;我知道web农场框架会为我做自动负载平衡。
假设我有3台服务器。
服务器A: 8核服务器B: 4核服务器C: 4核
问题是我总共收到了多少个CPU核心?是8+4+4=16内核吗?
我之所以问这个问题,是因为我想知道有多少个CPU核心可用于并行计算。
谢谢大家。
发布于 2011-12-09 05:37:36
Parallel LINQ只在执行的机器上使用可用的核心。我相信有一些第三方产品(微软研究院有DryadLINQ)可以将其扩展到集群,但是,开箱即用是不可能的。
此外,可用的核心和使用的线程是两个不同的东西(更挑剔的是,非托管线程和托管线程也是两个不同的东西)。
为了回答您的问题,无论代码在哪台服务器上执行,PLINQ都可能使用1个或更多线程(直到所使用的调度器提供的限制)。这完全取决于工作负载。
https://stackoverflow.com/questions/8437995
复制相似问题