Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网络农场框架&x2B;普林克_C#_Asp.net_Parallel Processing - Fatal编程技术网

C# 网络农场框架&x2B;普林克

C# 网络农场框架&x2B;普林克,c#,asp.net,parallel-processing,C#,Asp.net,Parallel Processing,我有一个关于web场框架和PLINQ的问题 正如我们所知,我们可以在.NET4.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 se

我有一个关于web场框架和PLINQ的问题

正如我们所知,我们可以在.NET4.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;
我知道WebFarmFramework将为我实现自动负载平衡

假设我有3台服务器

服务器A:8芯 服务器B:4核 服务器C:4核

问题是我总共收到多少个CPU内核?是8+4+4=16芯吗

我这样问是因为我想知道有多少CPU核可用于并行计算


谢谢大家。

并行LINQ is仅在它正在执行的机器上使用可用的内核。我相信有一些第三方产品(Microsoft Research)可以将其扩展到集群,但是,开箱即用是不可能的

此外,可用的内核和使用的线程是两个独立的东西(更详细地说,非托管线程和托管线程也是两个独立的东西)


为了回答您的问题,无论代码在哪台服务器上执行,PLINQ都可以使用1个或多个线程(最大限度由正在使用的调度程序提供)。这完全取决于工作量。

啊,看来我误解了。。感谢您的帮助另外,web场框架在这种情况下不会做任何事情?web场将意味着您总体上是平衡的,因为其他查询将被处理。PLINQ只意味着对给定Web服务器的给定请求可能会受益。@user361022:正如Jon所说,Web场框架更倾向于平衡HTTP请求,而不是每个服务器的工作负载。我不是100%确定它的特性,但它可能会将请求重定向到CPU繁忙的机器上。如果服务器A和C在PLINQ上运行,而服务器B是免费的,这个功能可能会有所帮助。很酷,我想我现在明白了。PLINQ将查询划分为更小的块。Web场框架划分HTTP请求。