gpt4 book ai didi

c - C中的for循环优化

转载 作者:行者123 更新时间:2023-12-02 09:13:15 27 4
gpt4 key购买 nike

如何优化这个 for 循环:

for (l = 1; l <= loop; l++) {
for (i = 1; i < n; i++) {
x[i] = z[i] * (y[i] - x[i - 1]);
}
}

如何通过 OpenMp 并行它的原始版本和优化版本?

最佳答案

假设您想要并行化内部循环

for ( i = 1; i < n; ++i ) {
x[i] = z[i] * ( y[i] - x[i - 1] );
}

我建议预先计算不依赖于前一个循环的部分。这更容易并行化。

double preComps [n];
#pragma omp parallel for
for( i = 1; i < n ; ++i ) {
preComps[i] = z[i] * y[i];
}

// this loop is difficult to parallelize because of the data dependency on what was computed in the previous loop
for( i = 1; i < n ; ++i ) {
x[i] = preComps[i] - z[i] * x[i - 1];
}

关于c - C中的for循环优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49788486/

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