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

eli*_*zik -2 c parallel-processing openmp

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

#pragma omp parallel for
   for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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

但是,对于此示例,您将从并行化中获得任何性能优势,这一点非常值得怀疑.