math.net numerics
中asp.net/c#
矩阵/向量计算的最佳做法是什么。
我正在执行大量(10000 * 30 * 35)矩阵计算。我正在使用Intel MKL provider
和C#.Net TPL
,但仍然需要在16核心系统上花费大约40秒,这是不可接受的,试图将它带到3-4秒内。
所有都是密集的矩阵。当我使用dotTrace探查器工具检查时,columnsum需要更多时间。
有什么想法吗?
以下是示例代码:
Parallel.For(0, count, (i) =>
{
for (int j = 0; j < year; j++)
{
for (int k = 0; k < iterations; k++)
{
a.PointwiseMultiply(b);
a.Multiply(b); a.Multiply(b);
a.Add(b);
a.Add(b).Subtract(b);
a.ColumnSums(); a.ColumnSums();
a.Subtract(1);
a.Multiply(2);
}
}
//Interlocked.Decrement(ref tc);
});