如何在 OpenMP 中并行这个 for 循环?

How to make parallel this for loop in OpenMP?

我正在尝试通过添加“#pragma omp parallel for”来运行并行循环,但这对我如何并行此循环没有任何建议?

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

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

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

尽管如此,对于此示例,您能否从并行化中获得任何性能优势还是值得怀疑的。