假设我有一个嵌套的循环:
for(m=0;m<10;m++)
for(n=0;n<10;n++)
result[n][m]=result[m-3][n-2]
+result[n+1];我们可以把这两个循环中的任何一个称为可并行化的吗?我的理解是,两个变量n和m都是依赖的,所以我们不能将任何循环并行化。
请澄清。另外,这是什么类型的依赖关系?
谢谢!
发布于 2010-12-15 09:01:05
示例循环不可并行化(或至少不容易),这是正确的,但这并不是因为内部内容同时依赖于m和n (因为它们可以作为参数传递给新线程或其他任何东西)。这是因为后来的计算依赖于早期计算的结果。例如,result[10][12]的值取决于result[9][8],而result[5][7]又取决于其他值。
https://stackoverflow.com/questions/4445769
复制相似问题