jml*_*ero 2 c multithreading openmp intel-mkl
我有一个 C 多线程代码,使用 OpenMP 和 Intel MKL 函数。我有以下代码:
omp_set_num_threads(nth);
#pragma omp parallel for private(l,s) schedule(static)
for(l=0;l<lines;l++)
{
for(s=0;s<samples;s++)
{
out[l*samples+s]=mkl_ddot(&bands, &hi[s*bands+l], &inc_one, &hi_[s*bands+l], &inc_one);
}
}//fin for l
Run Code Online (Sandbox Code Playgroud)
我想在这个 pramga 中使用多核处理器的所有核心(第 n 个值)。但我希望每个核心独立计算一个 mkl_ddot 函数(每个 mkl_ddot 函数 1 个线程)。
我想知道在这种情况下 mkl_ddot 函数使用了多少个线程。我在一些论坛上读到,默认情况下,mkl 在仅使用 1 个核心的 pragma 并行运行中起作用(这就是我想要的)。但我不确定这种行为,也找不到手册中解释这种情况的具体部分。
提前致谢。