禁用C+中的默认犰狳+;使用-fopenmp编译时 C++,在用-fOpenMP编译时,有没有办法禁用默认并行化。我希望在代码的其他部分进行并行化
我特别感兴趣的函数是eig_sym() 非常感谢,禁用C+中的默认犰狳+;使用-fopenmp编译时 C++,在用-fOpenMP编译时,有没有办法禁用默认并行化。我希望在代码的其他部分进行并行化,c++,parallel-processing,armadillo,C++,Parallel Processing,Armadillo,我特别感兴趣的函数是eig_sym() 非常感谢, Yantao犰狳没有与OpenMP并行,但有一点需要注意: 底层LAPACK或BLAS实现可以并行化。如果您使用的是OpenBLAS,那么它就是 Armadillo gmm_diag实现使用OpenMP 因此,最简单的方法是“不要使用OpenBLAS,而是使用单线程BLAS”。但这不是唯一的办法 在我看来,您似乎想禁用嵌套并行性,以便代码中唯一并行的部分位于代码的更高级别,而不是eig_sym()。这里有一些关于OMP\u嵌套的文档: 因
Yantao犰狳没有与OpenMP并行,但有一点需要注意:
- 底层LAPACK或BLAS实现可以并行化。如果您使用的是OpenBLAS,那么它就是
- Armadillo gmm_diag实现使用OpenMP
eig_sym()
。这里有一些关于OMP\u嵌套的文档
:
因此,您可以在运行时将环境OMP\u-NESTED
设置为false,或者在代码中使用OMP\u-set\u-NESTED()