Я пытаюсь использовать собственный провайдер Mkl от mathdotnet с моно в Linux.
Я использую monodevelop и устанавливаю пакеты MathNet.Numerics и MathNet.Numerics.MKL.Linux-x64 и -x86 через сборку в диспетчере пакетов NuGet.
Когда я пробую этот код, я получаю System.NotSupportedException: собственный поставщик MKL не найден.
using System;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics;
namespace mdeveloptest
{
class MainClass
{
public static void Main (string[] args)
{
Control.UseNativeMKL ();
Matrix<double> a = DenseMatrix.OfArray(new double[,] { {1,2,3}, {4,5,6}, {7,8,9}});
Matrix<double> b = DenseMatrix.OfArray(new double[,] { {1,2,3}, {4,5,6}, {7,8,9}});
Console.WriteLine (a*b);
}
}
}
Пакеты MKL содержат файлы libiomp5.so и MathNet.Numerics.MKL.dll. В Windows было достаточно скопировать эти файлы в выходной каталог, но в Linux этого недостаточно.
Я также не уверен, нужен ли мне пакет x64 или x86 или моно как-то может выбрать правильный сам.