我一直在尝试提出一种并行特征值分解的算法,但是我尝试的算法中没有一个可以击败 matlab 的 eig 算法,那么有谁知道 matlab 使用哪种算法来处理 eig 函数?或者有人可以建议我一个很好的特征值分解并行算法吗?
问问题
1168 次
2 回答
4
MATLAB 将 LAPACK 用于其更高级别的线性代数。根据 MATLAB 的 version 命令,它是 Intel 的 Math Kernel Library (MKL):
>> version('-lapack')
ans =
Intel(R) Math Kernel Library Version 11.0.2 Product Build 20130124 for Intel(R) 64 architecture applications
Linear Algebra PACKage Version 3.4.1
英特尔 MKL 包括非常快速的 BLAS 和 LAPACK 实施,但它不是免费的。对于开源选项,请尝试Eigen和Armadillo。他们的 API 非常直观,而且速度非常快。如果您相信Eigen 的声明,它们是最快的开放式 BLAS,具有优于参考 netlib LAPACK 的 API(IMO,一旦您查看 Fortran 版本,API 声明就非常明显了!)
于 2013-10-10T00:44:22.723 回答