我试图想出一个并行特征值分解的算法,但是我试过的算法没有超过matlab的eig算法,所以有谁知道matlab使用哪个算法用于eig函数? 还是有人能建议我一个很好的并行算法进行特征值分解吗?
答案 0 :(得分:4)
MATLAB将LAPACK用于更高级别的线性代数。根据MATLAB的版本命令,它是英特尔的数学核心库(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's claims,它们是最快的开放BLAS,它具有优于参考netlib LAPACK的API(IMO,一旦你查看Fortran版本,API声明就非常明显了!)
答案 1 :(得分:3)