我正在使用Math.Net Numerics平行内部进行繁重的数学计算Parallel.For块.
当我在本地系统中运行4核(2*2)的代码时,它使用全部4个核心.
但是,当我在具有8个内核(4*2)的开发服务器中运行相同的代码时,它只使用4个内核.
我试过设置MaxDegreeOfParallism,但无法帮助.
知道为什么没有使用所有核心.
以下是示例代码.
Parallel.For(0,10000,(i)=>
{
// heavy math computations using matrices
});
Run Code Online (Sandbox Code Playgroud) c# task-parallel-library mathnet-numerics parallel.for math.net
使用LINQ,以下哪项性能更好?
sets.FirstOrDefault(x=>x.name=="xxx")
Run Code Online (Sandbox Code Playgroud)
要么
sets.FirstOrDefault(x=>!string.IsNullOrEmpty(x.name) && x.name.Equals("xxx",StringComparison.InvariantCultureIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
这里的名字可以null.我在我的应用程序中使用此类查询20次以上.
有没有更好的方法?
我正在使用 MathNet Numerics 矩阵并试图找出矩阵的协方差。
我们如何找到矩阵的协方差?
我们有方法在 Statistics 命名空间下找到两个 IEnumerable 之间的协方差。
http://numerics.mathdotnet.com/api/MathNet.Numerics.Statistics/Statistics.htm
但我不知道如何使用它来查找矩阵。
例如:在 matlab/octave
在 C# 中也是如此。我们如何实施?