Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用C+中的默认犰狳+;使用-fopenmp编译时 C++,在用-fOpenMP编译时,有没有办法禁用默认并行化。我希望在代码的其他部分进行并行化_C++_Parallel Processing_Armadillo - Fatal编程技术网

禁用C+中的默认犰狳+;使用-fopenmp编译时 C++,在用-fOpenMP编译时,有没有办法禁用默认并行化。我希望在代码的其他部分进行并行化

禁用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嵌套的文档: 因

我特别感兴趣的函数是eig_sym()

非常感谢,
Yantao

犰狳没有与OpenMP并行,但有一点需要注意:

  • 底层LAPACK或BLAS实现可以并行化。如果您使用的是OpenBLAS,那么它就是
  • Armadillo gmm_diag实现使用OpenMP
因此,最简单的方法是“不要使用OpenBLAS,而是使用单线程BLAS”。但这不是唯一的办法

在我看来,您似乎想禁用嵌套并行性,以便代码中唯一并行的部分位于代码的更高级别,而不是
eig_sym()
。这里有一些关于
OMP\u嵌套的文档

因此,您可以在运行时将环境
OMP\u-NESTED
设置为false,或者在代码中使用
OMP\u-set\u-NESTED()