gpt4 book ai didi

c++ - OpenMP 矩阵 vector 乘法仅在一个线程上执行

转载 作者:行者123 更新时间:2023-11-30 02:38:34 33 4
gpt4 key购买 nike

我有这段代码(概述如下)用于并行化矩阵 vector 乘法。但是每当我运行它时,我发现它只在一个线程上执行(即使我指定了 4 个线程)。如何分离并行代码的各个部分以在不同的线程上运行。任何帮助将不胜感激。谢谢

int nthreads;
nthreads = 4;
omp_set_num_threads(nthreads);
chunk = m/nthreads;

#pragma omp parallel for private(i,j,H) schedule(static,chunk)
for (i=0; i<m; i++ ){
C[i]=0;
for (j=0; j<p; j++) {
int H = omp_get_thread_num();
C[i] += (A[i+(j*m)]*B[j]);
}
}

最佳答案

您是否在 #pragma omp parallel{...} 中包含了这个片段,或者您可能遗漏了 parallel 这个词?

关于c++ - OpenMP 矩阵 vector 乘法仅在一个线程上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30708068/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com