本征+;MKL不在Ubuntu上工作。在OSX上工作

本征+;MKL不在Ubuntu上工作。在OSX上工作,ubuntu,eigen,intel-mkl,Ubuntu,Eigen,Intel Mkl,我有一个物理模拟,它依赖于通过特征向量对大型厄米矩阵进行对角化。我最近打开了MKL,它在macosx上运行得非常好,可以加速对角化。但是我不能用同样的代码在Ubuntu上运行(也就是说,我没有速度提升和多线程) 我尝试过稀疏矩阵和稠密矩阵表示,以及ComplexEigenSolver和自伴特征解算器 我在Ubuntu上使用了Eigen 3.3.3和MKL 2018.u1,并遵循了本页的指导:和其他Eigen文档 汇编和链接行包括: g++ -I/home/.../Development/phys

我有一个物理模拟,它依赖于通过特征向量对大型厄米矩阵进行对角化。我最近打开了MKL,它在macosx上运行得非常好,可以加速对角化。但是我不能用同样的代码在Ubuntu上运行(也就是说,我没有速度提升和多线程)

我尝试过稀疏矩阵和稠密矩阵表示,以及ComplexEigenSolver和自伴特征解算器

我在Ubuntu上使用了Eigen 3.3.3和MKL 2018.u1,并遵循了本页的指导:和其他Eigen文档

汇编和链接行包括:

g++ -I/home/.../Development/physics/googletest/googletest/include -I/home/.../Development/googletest/googletest/include -I/home/.../lapack-3.7.1/LAPACKE/include -I/opt/intel/compilers_and_libraries/mac/mkl/include -I/usr/local/include/eigen3 -I/home/.../boost-inst/include -I/home/.../eigen3 -I/usr/local/include/boost -I/usr/local/include -O3 -Wall -Wno-sign-compare -std=gnu++11 -fopenmp -I/include -c -o obj/MajoranaKitaevHamiltonian.o src/MajoranaKitaevHamiltonian.cc

g++ obj/main.o obj/defs.o obj/kitaev.o obj/BasisState.o obj/DisorderParameter.o obj/KitaevHamiltonian.o obj/KitaevHamiltonianBlock.o obj/Spectrum.o obj/MajoranaDisorderParameter.o obj/NaiveMajoranaKitaevHamiltonian.o obj/MajoranaKitaevHamiltonian.o obj/Correlators.o obj/Timer.o obj/FockSpaceUtils.o obj/RandomMatrix.o obj/TSVFile.o -L/home/.../Development/physics/googletest/googletest/include -L/share/software/user/restricted/imkl/2018/mkl/lib/intel64 -L/share/software/user/restricted/imkl/2018.u1/lib/intel64/ -L/opt/intel/compilers_and_libraries/mac/mkl/lib -L/share/software/user/open/boost/1.64.0/lib -L/usr/local/lib -lboost_program_options -lboost_iostreams -lboost_system  -lboost_random -lmkl_core -lmkl_intel_thread -lmkl_core -lmkl_intel_ilp64 -liomp5 -fopenmp -o kitaev

(冗余路径同时支持Mac和Ubuntu平台)

请添加您使用的确切编译行。这样它就可以工作了,但速度不比Eigen快?您是否使用
-DEIGEN\u USE\u MKL\u ALL
编译?我正在使用在OSX上工作的
\define EIGEN\u USE\u MKL\u ALL
。代码运行良好,但我认为它不会调用MKL,因为它不会更快。我还尝试与
gdb
连接以获得回溯,它看起来就像非MKL回溯。非常感谢。