This project has moved. For the latest updates, please go here.

Using MKL has no effect

Jan 7, 2014 at 7:29 PM
I can't get the native provider to work (I don't see any performance improvement)

Is there a way to tell that it's being used, other than the performance improvement?

Code is as follow:

mRef is a Matrix<double>
vDet is a Vector<double>
Control.LinearAlgebraProvider = new MklLinearAlgebraProvider();
var mRefT = mRef.Transpose();  // reference matrix transposed
var dV = mRefT * vDet;
var A = mRefT * mRef;
var pV = A.LU().Solve(dV);
Using version of MathNet.Numerics

Jan 7, 2014 at 7:57 PM
A bit more info:

I know for a fact that if the libiomp5md.dll and MathNet.Numerics.MKL.dll file aren't included, an exception is raised.

dV is typically 500 elements long.
mRef can vary from a 1x500 to 6x500

The "500" can go up to 1000-1500, technically more, but it's uncommon.
Jan 7, 2014 at 8:48 PM
Edited Jan 7, 2014 at 8:49 PM
A) What are the actual instance types of the involved matrices and vectors? I.e. are there any which are not DenseMatrix/DenseVector?

B) Would it be possible to upgrade to Math.NET Numerics v2.6.2?

Jan 8, 2014 at 1:36 PM
Looks like it was working all along, the improvement became obvious when running without the debugger attached.

A) They are all DenseMatrix/DenseVector

B) Yes, is 2.6.2 released as NuGet, or do I need to get the source and compile?

Sorry for raising a false alarm.
Marked as answer by cdrnet on 1/8/2014 at 12:30 PM
Jan 8, 2014 at 7:30 PM
Thanks for the update. Yes, 2.6.2 is on NuGet. It's the newest v2 release. You may also have a look at the v3 pre-releases already - they are still alpha and will thus change, but these changes will be negligible compared to the changes fro v2 to v3.

Marked as answer by cdrnet on 1/8/2014 at 12:30 PM