【发布时间】:2020-02-29 09:28:05
【问题描述】:
我可以用这段代码做哪些其他循环转换来增加潜在的并行度?
代码在这里:
for (int i=10; i<N; i++)
{
A[i] = B[i] * 14.3 / A[10];
C[i] = C[i-1] + C[i-2];
}
到目前为止我所做的是使用循环剥离:
A[10] = B[10] * 14.3 /A[10]
C[10] = C[10-1] + C[10-2];
for(int i = 11 ; i<N; i++)
{
A[i] = B[i] * 14.3 / A[10];
C[i] = C[i-1] + C[i-2];
}
这解决了第一行,但无论如何我可以在循环内转换第二行吗?
【问题讨论】:
-
A[i] = B[i] * 14.3 / A[10];与您的问题无关,因为其中没有依赖关系,也不会在另一行产生任何依赖关系。
标签: algorithm loops parallel-processing