在Armadillo C ++中,有没有办法在使用-fopenmp编译时禁用默认的并行化。我希望并行化在代码的其他部分。
我特别感兴趣的功能是eig_sym()。
非常感谢, 烟台
答案 0 :(得分:3)
犰狳并没有与OpenMP并行化,但有一些警告:
所以最简单的方法是不要使用OpenBLAS,而是使用单线程BLAS"。但这不是唯一的出路。
听起来我想要禁用嵌套并行性,因此并行化代码的唯一部分位于代码的较高级别而不是eig_sym()
。以下是OMP_NESTED
的一些文档:
https://docs.oracle.com/cd/E19205-01/819-5270/aewbc/index.html
因此,您可以在运行时将环境OMP_NESTED
设置为false,或在代码中将omp_set_nested()
设置为。