多线程MKL和特征

时间:2016-06-03 10:55:33

标签: multithreading eigen armadillo intel-mkl accelerate-framework

我需要在OSX上使用并行线性代数 尽可能轻松(即最多我可以使用HomeBrew和我的同事)分解库是由于我在问题中的DOF数量。

我尝试过Armadillo,它支持稀疏代数,这是我需要的,我可以与Accelerate框架链接,但它只是解决线性问题,它不支持分解AFAIK。

接下来,MKL,但我无能为力似乎触发了线程,即使使用TBB:

tbb::task_scheduler_init scheduler(4);
mkl_set_dynamic(true);
mkl_set_num_threads(4);
mkl_set_num_threads_local(4);

Eigen可能很酷,但似乎与MKL一样,它不会并行运行。

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

OSX clang不支持openmp,这是多线程Eigen和MKL所必需的。

根据Intel® Math Kernel Library Link Line Advisor,MKL不支持使用clang进行TBB线程。

但它似乎支持带有额外链接选项-liomp5的英特尔OpenMP库。你可以试试它是否有效。如果没有,您可能必须使用其他编译器,如gcc。你可以在HomeBrew中找到它。