如何在OpenMP中将此for循环并行?

时间:2016-06-01 01:29:53

标签: c parallel-processing openmp

我试图通过添加" #pragma omp parallel for"来并行运行循环,但这对我如何并行循环没有任何建议?

#pragma omp parallel for
   for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';

1 个答案:

答案 0 :(得分:5)

要使OpenMP并行化循环,必须事先确定循环迭代次数。在这种特殊情况下,您必须首先确定字符串长度:

size_t len = strlen(split);
#pragma omp for
for ( size_t p = 0 ; p < len; ++p ) if (split[p] == ' ') split[p] = '0';

尽管如此,您可以从并行化中获得任何性能优势,这是非常值得怀疑的。