C 循环依赖

C 循环依赖,c,parallel-processing,C,Parallel Processing,假设我有一个嵌套循环,如下所示: for(m=0;m<10;m++) for(n=0;n<10;n++) result[n][m]=result[m-3][n-2] +result[n+1]; for(m=0;m您认为示例循环不可并行化(或至少不容易并行化)是正确的,但这并不是因为内部内容同时依赖于m和n(因为它们可以作为参数传递给新线程或其他任何对象)。这是因为以后的计算取决于早期计算的结果。例如,result[10][12

假设我有一个嵌套循环,如下所示:

for(m=0;m<10;m++)
   for(n=0;n<10;n++)
      result[n][m]=result[m-3][n-2]
                   +result[n+1];

for(m=0;m您认为示例循环不可并行化(或至少不容易并行化)是正确的,但这并不是因为内部内容同时依赖于
m
n
(因为它们可以作为参数传递给新线程或其他任何对象)。这是因为以后的计算取决于早期计算的结果。例如,
result[10][12]
的值取决于
result[9][8]
,后者取决于
result[5][7]
等。

您正确地认为,那里的示例循环不可并行(或者至少不容易并行),但这并不是因为内部内容同时依赖于
m
n
(因为它们可以作为参数传递给新线程或任何东西)。这是因为以后的计算取决于早期计算的结果。例如,
result[10][12]
的值取决于
result[9][8]
这取决于
结果[5][7]
等。

结果[-3][2][/code>中的内容是什么?您在最后一个子表达式
+结果[n+1]
中缺少一个数组索引。Anon:假设消除了负索引。Adam:是的,对不起,这是+result[n+1][m]你知道你可以编辑你的答案来纠正错误,对吗?结果[-3][-2][/code>?你在最后一个子表达式中缺少一个数组索引
+result[n+1]
。安侬:假设消除了负索引。亚当:是的,很抱歉是+result[n+1][m]你知道你可以编辑你的答案来纠正错误,对吗?