Петля зависимость - PullRequest
       1

Петля зависимость

0 голосов
/ 15 декабря 2010

Скажем, у меня есть вложенный цикл:

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, поэтому мы не можем распараллелить ни один из циклов.

Пожалуйста, уточните.Кроме того, что это за тип зависимостей?

Спасибо!

1 Ответ

3 голосов
/ 15 декабря 2010

Вы правы, что примерный цикл не распараллеливается (или, по крайней мере, нелегко), но это не потому, что внутреннее содержимое зависит от m и n (так как они могут быть переданы в качестве аргументов для нового нить или что угодно). Это связано с тем, что более поздние вычисления зависят от результатов предыдущих расчетов. Например, значение result[10][12] зависит от result[9][8], которое зависит от result[5][7] и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...