【发布时间】:2014-02-04 18:32:23
【问题描述】:
我有一个 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
我想在这个 pramga 中使用多核处理器的所有内核(nth 的值)。 但我希望每个内核独立计算一个 mkl_ddot 函数(每个 mkl_ddot 函数 1 个线程)。
我想知道在这种情况下 mkl_ddot 函数使用了多少线程。我在一些论坛上读到,默认情况下 mkl 函数在编译指示并行运行中仅使用 1 个内核(这就是我想要的)。 但我不确定这种行为,我在手册中找不到解释这种情况的具体部分。
提前致谢。
【问题讨论】:
标签: c multithreading intel-mkl openmp