如何在 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';
尽管如此,对于此示例,您能否从并行化中获得任何性能优势还是值得怀疑的。
我正在尝试通过添加“#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';
尽管如此,对于此示例,您能否从并行化中获得任何性能优势还是值得怀疑的。